# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.0.1

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.devices.adc.provider
import winrt.windows.devices.gpio.provider
import winrt.windows.devices.i2c.provider
import winrt.windows.devices.pwm.provider
import winrt.windows.devices.spi.provider

Self = typing.TypeVar('Self')

@typing.final
class LowLevelDevicesAggregateProvider(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> LowLevelDevicesAggregateProvider: ...
    def __new__(cls: typing.Type[LowLevelDevicesAggregateProvider], adc: typing.Optional[winrt.windows.devices.adc.provider.IAdcControllerProvider], pwm: typing.Optional[winrt.windows.devices.pwm.provider.IPwmControllerProvider], gpio: typing.Optional[winrt.windows.devices.gpio.provider.IGpioControllerProvider], i2c: typing.Optional[winrt.windows.devices.i2c.provider.II2cControllerProvider], spi: typing.Optional[winrt.windows.devices.spi.provider.ISpiControllerProvider]) -> LowLevelDevicesAggregateProvider:...
    @_property
    def adc_controller_provider(self) -> typing.Optional[winrt.windows.devices.adc.provider.IAdcControllerProvider]: ...
    @_property
    def gpio_controller_provider(self) -> typing.Optional[winrt.windows.devices.gpio.provider.IGpioControllerProvider]: ...
    @_property
    def i2c_controller_provider(self) -> typing.Optional[winrt.windows.devices.i2c.provider.II2cControllerProvider]: ...
    @_property
    def pwm_controller_provider(self) -> typing.Optional[winrt.windows.devices.pwm.provider.IPwmControllerProvider]: ...
    @_property
    def spi_controller_provider(self) -> typing.Optional[winrt.windows.devices.spi.provider.ISpiControllerProvider]: ...

@typing.final
class LowLevelDevicesController_Static(type):
    @_property
    def default_provider(cls) -> typing.Optional[ILowLevelDevicesAggregateProvider]: ...
    @default_provider.setter
    def default_provider(cls, value: typing.Optional[ILowLevelDevicesAggregateProvider]) -> None: ...

@typing.final
class LowLevelDevicesController(winrt.system.Object, metaclass=LowLevelDevicesController_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> LowLevelDevicesController: ...

@typing.final
class ILowLevelDevicesAggregateProvider(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> ILowLevelDevicesAggregateProvider: ...
    @_property
    def adc_controller_provider(self) -> typing.Optional[winrt.windows.devices.adc.provider.IAdcControllerProvider]: ...
    @_property
    def gpio_controller_provider(self) -> typing.Optional[winrt.windows.devices.gpio.provider.IGpioControllerProvider]: ...
    @_property
    def i2c_controller_provider(self) -> typing.Optional[winrt.windows.devices.i2c.provider.II2cControllerProvider]: ...
    @_property
    def pwm_controller_provider(self) -> typing.Optional[winrt.windows.devices.pwm.provider.IPwmControllerProvider]: ...
    @_property
    def spi_controller_provider(self) -> typing.Optional[winrt.windows.devices.spi.provider.ISpiControllerProvider]: ...

