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

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 as windows_devices_adc_provider
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections

from winrt.windows.devices.adc import AdcChannelMode

Self = typing.TypeVar('Self')

@typing.final
class AdcChannel(winrt.system.Object, windows_foundation.IClosable):
    def __enter__(self: Self) -> Self: ...
    def __exit__(self, exc_type: typing.Optional[typing.Type[BaseException]], exc_value: typing.Optional[BaseException], traceback: typing.Optional[types.TracebackType]) -> None: ...
    # System.Void Windows.Devices.Adc.AdcChannel::Close()
    def close(self) -> None: ...
    # System.Double Windows.Devices.Adc.AdcChannel::ReadRatio()
    def read_ratio(self) -> winrt.system.Double: ...
    # System.Int32 Windows.Devices.Adc.AdcChannel::ReadValue()
    def read_value(self) -> winrt.system.Int32: ...
    # Windows.Devices.Adc.AdcController Windows.Devices.Adc.AdcChannel::get_Controller()
    @_property
    def controller(self) -> AdcController: ...

@typing.final
class AdcController_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Devices.Adc.AdcController>> Windows.Devices.Adc.AdcController::GetControllersAsync(Windows.Devices.Adc.Provider.IAdcProvider)
    def get_controllers_async(cls, provider: windows_devices_adc_provider.IAdcProvider, /) -> windows_foundation.IAsyncOperation[typing.Sequence[AdcController]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.Adc.AdcController> Windows.Devices.Adc.AdcController::GetDefaultAsync()
    def get_default_async(cls) -> windows_foundation.IAsyncOperation[AdcController]: ...

@typing.final
class AdcController(winrt.system.Object, metaclass=AdcController_Static):
    # System.Boolean Windows.Devices.Adc.AdcController::IsChannelModeSupported(Windows.Devices.Adc.AdcChannelMode)
    def is_channel_mode_supported(self, channel_mode: AdcChannelMode, /) -> bool: ...
    # Windows.Devices.Adc.AdcChannel Windows.Devices.Adc.AdcController::OpenChannel(System.Int32)
    def open_channel(self, channel_number: winrt.system.Int32, /) -> AdcChannel: ...
    # Windows.Devices.Adc.AdcChannelMode Windows.Devices.Adc.AdcController::get_ChannelMode()
    @_property
    def channel_mode(self) -> AdcChannelMode: ...
    # System.Void Windows.Devices.Adc.AdcController::put_ChannelMode(Windows.Devices.Adc.AdcChannelMode)
    @channel_mode.setter
    def channel_mode(self, value: AdcChannelMode) -> None: ...
    # System.Int32 Windows.Devices.Adc.AdcController::get_ChannelCount()
    @_property
    def channel_count(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Devices.Adc.AdcController::get_MaxValue()
    @_property
    def max_value(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Devices.Adc.AdcController::get_MinValue()
    @_property
    def min_value(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Devices.Adc.AdcController::get_ResolutionInBits()
    @_property
    def resolution_in_bits(self) -> winrt.system.Int32: ...

