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

import datetime
import sys
import types
import typing
import uuid as _uuid
from builtins import property as _property

import winrt._winrt
import winrt.system
import winrt.windows.foundation.collections

Self = typing.TypeVar('Self')

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

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

