# WARNING: Please don't edit this file. It was generated by Python/WinRT v1.0.0-beta.10

import datetime
import sys
import types
import typing

import winsdk.system
import winsdk.windows.foundation.collections

Self = typing.TypeVar('Self')

class IPwmControllerProvider(winsdk.system.Object):
    actual_frequency: winsdk.system.Double
    max_frequency: winsdk.system.Double
    min_frequency: winsdk.system.Double
    pin_count: winsdk.system.Int32
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> IPwmControllerProvider: ...
    def acquire_pin(self, pin: winsdk.system.Int32, /) -> None: ...
    def disable_pin(self, pin: winsdk.system.Int32, /) -> None: ...
    def enable_pin(self, pin: winsdk.system.Int32, /) -> None: ...
    def release_pin(self, pin: winsdk.system.Int32, /) -> None: ...
    def set_desired_frequency(self, frequency: winsdk.system.Double, /) -> winsdk.system.Double: ...
    def set_pulse_parameters(self, pin: winsdk.system.Int32, duty_cycle: winsdk.system.Double, invert_polarity: winsdk.system.Boolean, /) -> None: ...

class IPwmProvider(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> IPwmProvider: ...
    def get_controllers(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[IPwmControllerProvider]]: ...

