# 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.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.storage as windows_storage
import winrt.windows.storage.streams as windows_storage_streams

from winrt.windows.devices.humaninterfacedevice import HidCollectionType, HidReportType

Self = typing.TypeVar('Self')

@typing.final
class HidBooleanControl(winrt.system.Object):
    # System.Boolean Windows.Devices.HumanInterfaceDevice.HidBooleanControl::get_IsActive()
    @_property
    def is_active(self) -> bool: ...
    # System.Void Windows.Devices.HumanInterfaceDevice.HidBooleanControl::put_IsActive(System.Boolean)
    @is_active.setter
    def is_active(self, value: bool) -> None: ...
    # Windows.Devices.HumanInterfaceDevice.HidBooleanControlDescription Windows.Devices.HumanInterfaceDevice.HidBooleanControl::get_ControlDescription()
    @_property
    def control_description(self) -> HidBooleanControlDescription: ...
    # System.UInt32 Windows.Devices.HumanInterfaceDevice.HidBooleanControl::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidBooleanControl::get_UsageId()
    @_property
    def usage_id(self) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidBooleanControl::get_UsagePage()
    @_property
    def usage_page(self) -> winrt.system.UInt16: ...

@typing.final
class HidBooleanControlDescription(winrt.system.Object):
    # System.UInt32 Windows.Devices.HumanInterfaceDevice.HidBooleanControlDescription::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.HumanInterfaceDevice.HidCollection> Windows.Devices.HumanInterfaceDevice.HidBooleanControlDescription::get_ParentCollections()
    @_property
    def parent_collections(self) -> typing.Sequence[HidCollection]: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidBooleanControlDescription::get_ReportId()
    @_property
    def report_id(self) -> winrt.system.UInt16: ...
    # Windows.Devices.HumanInterfaceDevice.HidReportType Windows.Devices.HumanInterfaceDevice.HidBooleanControlDescription::get_ReportType()
    @_property
    def report_type(self) -> HidReportType: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidBooleanControlDescription::get_UsageId()
    @_property
    def usage_id(self) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidBooleanControlDescription::get_UsagePage()
    @_property
    def usage_page(self) -> winrt.system.UInt16: ...
    # System.Boolean Windows.Devices.HumanInterfaceDevice.HidBooleanControlDescription::get_IsAbsolute()
    @_property
    def is_absolute(self) -> bool: ...

@typing.final
class HidCollection(winrt.system.Object):
    # System.UInt32 Windows.Devices.HumanInterfaceDevice.HidCollection::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # Windows.Devices.HumanInterfaceDevice.HidCollectionType Windows.Devices.HumanInterfaceDevice.HidCollection::get_Type()
    @_property
    def type(self) -> HidCollectionType: ...
    # System.UInt32 Windows.Devices.HumanInterfaceDevice.HidCollection::get_UsageId()
    @_property
    def usage_id(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Devices.HumanInterfaceDevice.HidCollection::get_UsagePage()
    @_property
    def usage_page(self) -> winrt.system.UInt32: ...

@typing.final
class HidDevice_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.HumanInterfaceDevice.HidDevice> Windows.Devices.HumanInterfaceDevice.HidDevice::FromIdAsync(System.String,Windows.Storage.FileAccessMode)
    def from_id_async(cls, device_id: str, access_mode: windows_storage.FileAccessMode, /) -> windows_foundation.IAsyncOperation[HidDevice]: ...
    # System.String Windows.Devices.HumanInterfaceDevice.HidDevice::GetDeviceSelector(System.UInt16,System.UInt16)
    def get_device_selector(cls, usage_page: winrt.system.UInt16, usage_id: winrt.system.UInt16, /) -> str: ...
    # System.String Windows.Devices.HumanInterfaceDevice.HidDevice::GetDeviceSelector(System.UInt16,System.UInt16,System.UInt16,System.UInt16)
    def get_device_selector_vid_pid(cls, usage_page: winrt.system.UInt16, usage_id: winrt.system.UInt16, vendor_id: winrt.system.UInt16, product_id: winrt.system.UInt16, /) -> str: ...

@typing.final
class HidDevice(winrt.system.Object, windows_foundation.IClosable, metaclass=HidDevice_Static):
    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.HumanInterfaceDevice.HidDevice::Close()
    def close(self) -> None: ...
    # Windows.Devices.HumanInterfaceDevice.HidFeatureReport Windows.Devices.HumanInterfaceDevice.HidDevice::CreateFeatureReport()
    def create_feature_report(self) -> HidFeatureReport: ...
    # Windows.Devices.HumanInterfaceDevice.HidFeatureReport Windows.Devices.HumanInterfaceDevice.HidDevice::CreateFeatureReport(System.UInt16)
    def create_feature_report_by_id(self, report_id: winrt.system.UInt16, /) -> HidFeatureReport: ...
    # Windows.Devices.HumanInterfaceDevice.HidOutputReport Windows.Devices.HumanInterfaceDevice.HidDevice::CreateOutputReport()
    def create_output_report(self) -> HidOutputReport: ...
    # Windows.Devices.HumanInterfaceDevice.HidOutputReport Windows.Devices.HumanInterfaceDevice.HidDevice::CreateOutputReport(System.UInt16)
    def create_output_report_by_id(self, report_id: winrt.system.UInt16, /) -> HidOutputReport: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.HumanInterfaceDevice.HidBooleanControlDescription> Windows.Devices.HumanInterfaceDevice.HidDevice::GetBooleanControlDescriptions(Windows.Devices.HumanInterfaceDevice.HidReportType,System.UInt16,System.UInt16)
    def get_boolean_control_descriptions(self, report_type: HidReportType, usage_page: winrt.system.UInt16, usage_id: winrt.system.UInt16, /) -> typing.Sequence[HidBooleanControlDescription]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.HumanInterfaceDevice.HidFeatureReport> Windows.Devices.HumanInterfaceDevice.HidDevice::GetFeatureReportAsync()
    def get_feature_report_async(self) -> windows_foundation.IAsyncOperation[HidFeatureReport]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.HumanInterfaceDevice.HidFeatureReport> Windows.Devices.HumanInterfaceDevice.HidDevice::GetFeatureReportAsync(System.UInt16)
    def get_feature_report_by_id_async(self, report_id: winrt.system.UInt16, /) -> windows_foundation.IAsyncOperation[HidFeatureReport]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.HumanInterfaceDevice.HidInputReport> Windows.Devices.HumanInterfaceDevice.HidDevice::GetInputReportAsync()
    def get_input_report_async(self) -> windows_foundation.IAsyncOperation[HidInputReport]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Devices.HumanInterfaceDevice.HidInputReport> Windows.Devices.HumanInterfaceDevice.HidDevice::GetInputReportAsync(System.UInt16)
    def get_input_report_by_id_async(self, report_id: winrt.system.UInt16, /) -> windows_foundation.IAsyncOperation[HidInputReport]: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription> Windows.Devices.HumanInterfaceDevice.HidDevice::GetNumericControlDescriptions(Windows.Devices.HumanInterfaceDevice.HidReportType,System.UInt16,System.UInt16)
    def get_numeric_control_descriptions(self, report_type: HidReportType, usage_page: winrt.system.UInt16, usage_id: winrt.system.UInt16, /) -> typing.Sequence[HidNumericControlDescription]: ...
    # Windows.Foundation.IAsyncOperation`1<System.UInt32> Windows.Devices.HumanInterfaceDevice.HidDevice::SendFeatureReportAsync(Windows.Devices.HumanInterfaceDevice.HidFeatureReport)
    def send_feature_report_async(self, feature_report: HidFeatureReport, /) -> windows_foundation.IAsyncOperation[winrt.system.UInt32]: ...
    # Windows.Foundation.IAsyncOperation`1<System.UInt32> Windows.Devices.HumanInterfaceDevice.HidDevice::SendOutputReportAsync(Windows.Devices.HumanInterfaceDevice.HidOutputReport)
    def send_output_report_async(self, output_report: HidOutputReport, /) -> windows_foundation.IAsyncOperation[winrt.system.UInt32]: ...
    # Windows.Foundation.EventRegistrationToken Windows.Devices.HumanInterfaceDevice.HidDevice::add_InputReportReceived(Windows.Foundation.TypedEventHandler`2<Windows.Devices.HumanInterfaceDevice.HidDevice,Windows.Devices.HumanInterfaceDevice.HidInputReportReceivedEventArgs>)
    def add_input_report_received(self, report_handler: windows_foundation.TypedEventHandler[HidDevice, HidInputReportReceivedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.Devices.HumanInterfaceDevice.HidDevice::remove_InputReportReceived(Windows.Foundation.EventRegistrationToken)
    def remove_input_report_received(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidDevice::get_ProductId()
    @_property
    def product_id(self) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidDevice::get_UsageId()
    @_property
    def usage_id(self) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidDevice::get_UsagePage()
    @_property
    def usage_page(self) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidDevice::get_VendorId()
    @_property
    def vendor_id(self) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidDevice::get_Version()
    @_property
    def version(self) -> winrt.system.UInt16: ...

@typing.final
class HidFeatureReport(winrt.system.Object):
    # Windows.Devices.HumanInterfaceDevice.HidBooleanControl Windows.Devices.HumanInterfaceDevice.HidFeatureReport::GetBooleanControl(System.UInt16,System.UInt16)
    def get_boolean_control(self, usage_page: winrt.system.UInt16, usage_id: winrt.system.UInt16, /) -> HidBooleanControl: ...
    # Windows.Devices.HumanInterfaceDevice.HidBooleanControl Windows.Devices.HumanInterfaceDevice.HidFeatureReport::GetBooleanControlByDescription(Windows.Devices.HumanInterfaceDevice.HidBooleanControlDescription)
    def get_boolean_control_by_description(self, control_description: HidBooleanControlDescription, /) -> HidBooleanControl: ...
    # Windows.Devices.HumanInterfaceDevice.HidNumericControl Windows.Devices.HumanInterfaceDevice.HidFeatureReport::GetNumericControl(System.UInt16,System.UInt16)
    def get_numeric_control(self, usage_page: winrt.system.UInt16, usage_id: winrt.system.UInt16, /) -> HidNumericControl: ...
    # Windows.Devices.HumanInterfaceDevice.HidNumericControl Windows.Devices.HumanInterfaceDevice.HidFeatureReport::GetNumericControlByDescription(Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription)
    def get_numeric_control_by_description(self, control_description: HidNumericControlDescription, /) -> HidNumericControl: ...
    # Windows.Storage.Streams.IBuffer Windows.Devices.HumanInterfaceDevice.HidFeatureReport::get_Data()
    @_property
    def data(self) -> windows_storage_streams.IBuffer: ...
    # System.Void Windows.Devices.HumanInterfaceDevice.HidFeatureReport::put_Data(Windows.Storage.Streams.IBuffer)
    @data.setter
    def data(self, value: windows_storage_streams.IBuffer) -> None: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidFeatureReport::get_Id()
    @_property
    def id(self) -> winrt.system.UInt16: ...

@typing.final
class HidInputReport(winrt.system.Object):
    # Windows.Devices.HumanInterfaceDevice.HidBooleanControl Windows.Devices.HumanInterfaceDevice.HidInputReport::GetBooleanControl(System.UInt16,System.UInt16)
    def get_boolean_control(self, usage_page: winrt.system.UInt16, usage_id: winrt.system.UInt16, /) -> HidBooleanControl: ...
    # Windows.Devices.HumanInterfaceDevice.HidBooleanControl Windows.Devices.HumanInterfaceDevice.HidInputReport::GetBooleanControlByDescription(Windows.Devices.HumanInterfaceDevice.HidBooleanControlDescription)
    def get_boolean_control_by_description(self, control_description: HidBooleanControlDescription, /) -> HidBooleanControl: ...
    # Windows.Devices.HumanInterfaceDevice.HidNumericControl Windows.Devices.HumanInterfaceDevice.HidInputReport::GetNumericControl(System.UInt16,System.UInt16)
    def get_numeric_control(self, usage_page: winrt.system.UInt16, usage_id: winrt.system.UInt16, /) -> HidNumericControl: ...
    # Windows.Devices.HumanInterfaceDevice.HidNumericControl Windows.Devices.HumanInterfaceDevice.HidInputReport::GetNumericControlByDescription(Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription)
    def get_numeric_control_by_description(self, control_description: HidNumericControlDescription, /) -> HidNumericControl: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.HumanInterfaceDevice.HidBooleanControl> Windows.Devices.HumanInterfaceDevice.HidInputReport::get_ActivatedBooleanControls()
    @_property
    def activated_boolean_controls(self) -> typing.Sequence[HidBooleanControl]: ...
    # Windows.Storage.Streams.IBuffer Windows.Devices.HumanInterfaceDevice.HidInputReport::get_Data()
    @_property
    def data(self) -> windows_storage_streams.IBuffer: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidInputReport::get_Id()
    @_property
    def id(self) -> winrt.system.UInt16: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.HumanInterfaceDevice.HidBooleanControl> Windows.Devices.HumanInterfaceDevice.HidInputReport::get_TransitionedBooleanControls()
    @_property
    def transitioned_boolean_controls(self) -> typing.Sequence[HidBooleanControl]: ...

@typing.final
class HidInputReportReceivedEventArgs(winrt.system.Object):
    # Windows.Devices.HumanInterfaceDevice.HidInputReport Windows.Devices.HumanInterfaceDevice.HidInputReportReceivedEventArgs::get_Report()
    @_property
    def report(self) -> HidInputReport: ...

@typing.final
class HidNumericControl(winrt.system.Object):
    # System.Int64 Windows.Devices.HumanInterfaceDevice.HidNumericControl::get_Value()
    @_property
    def value(self) -> winrt.system.Int64: ...
    # System.Void Windows.Devices.HumanInterfaceDevice.HidNumericControl::put_Value(System.Int64)
    @value.setter
    def value(self, value: winrt.system.Int64) -> None: ...
    # System.Int64 Windows.Devices.HumanInterfaceDevice.HidNumericControl::get_ScaledValue()
    @_property
    def scaled_value(self) -> winrt.system.Int64: ...
    # System.Void Windows.Devices.HumanInterfaceDevice.HidNumericControl::put_ScaledValue(System.Int64)
    @scaled_value.setter
    def scaled_value(self, value: winrt.system.Int64) -> None: ...
    # Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription Windows.Devices.HumanInterfaceDevice.HidNumericControl::get_ControlDescription()
    @_property
    def control_description(self) -> HidNumericControlDescription: ...
    # System.UInt32 Windows.Devices.HumanInterfaceDevice.HidNumericControl::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # System.Boolean Windows.Devices.HumanInterfaceDevice.HidNumericControl::get_IsGrouped()
    @_property
    def is_grouped(self) -> bool: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidNumericControl::get_UsageId()
    @_property
    def usage_id(self) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidNumericControl::get_UsagePage()
    @_property
    def usage_page(self) -> winrt.system.UInt16: ...

@typing.final
class HidNumericControlDescription(winrt.system.Object):
    # System.Boolean Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_HasNull()
    @_property
    def has_null(self) -> bool: ...
    # System.UInt32 Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # System.Boolean Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_IsAbsolute()
    @_property
    def is_absolute(self) -> bool: ...
    # System.Int32 Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_LogicalMaximum()
    @_property
    def logical_maximum(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_LogicalMinimum()
    @_property
    def logical_minimum(self) -> winrt.system.Int32: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Devices.HumanInterfaceDevice.HidCollection> Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_ParentCollections()
    @_property
    def parent_collections(self) -> typing.Sequence[HidCollection]: ...
    # System.Int32 Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_PhysicalMaximum()
    @_property
    def physical_maximum(self) -> winrt.system.Int32: ...
    # System.Int32 Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_PhysicalMinimum()
    @_property
    def physical_minimum(self) -> winrt.system.Int32: ...
    # System.UInt32 Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_ReportCount()
    @_property
    def report_count(self) -> winrt.system.UInt32: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_ReportId()
    @_property
    def report_id(self) -> winrt.system.UInt16: ...
    # System.UInt32 Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_ReportSize()
    @_property
    def report_size(self) -> winrt.system.UInt32: ...
    # Windows.Devices.HumanInterfaceDevice.HidReportType Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_ReportType()
    @_property
    def report_type(self) -> HidReportType: ...
    # System.UInt32 Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_Unit()
    @_property
    def unit(self) -> winrt.system.UInt32: ...
    # System.UInt32 Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_UnitExponent()
    @_property
    def unit_exponent(self) -> winrt.system.UInt32: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_UsageId()
    @_property
    def usage_id(self) -> winrt.system.UInt16: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription::get_UsagePage()
    @_property
    def usage_page(self) -> winrt.system.UInt16: ...

@typing.final
class HidOutputReport(winrt.system.Object):
    # Windows.Devices.HumanInterfaceDevice.HidBooleanControl Windows.Devices.HumanInterfaceDevice.HidOutputReport::GetBooleanControl(System.UInt16,System.UInt16)
    def get_boolean_control(self, usage_page: winrt.system.UInt16, usage_id: winrt.system.UInt16, /) -> HidBooleanControl: ...
    # Windows.Devices.HumanInterfaceDevice.HidBooleanControl Windows.Devices.HumanInterfaceDevice.HidOutputReport::GetBooleanControlByDescription(Windows.Devices.HumanInterfaceDevice.HidBooleanControlDescription)
    def get_boolean_control_by_description(self, control_description: HidBooleanControlDescription, /) -> HidBooleanControl: ...
    # Windows.Devices.HumanInterfaceDevice.HidNumericControl Windows.Devices.HumanInterfaceDevice.HidOutputReport::GetNumericControl(System.UInt16,System.UInt16)
    def get_numeric_control(self, usage_page: winrt.system.UInt16, usage_id: winrt.system.UInt16, /) -> HidNumericControl: ...
    # Windows.Devices.HumanInterfaceDevice.HidNumericControl Windows.Devices.HumanInterfaceDevice.HidOutputReport::GetNumericControlByDescription(Windows.Devices.HumanInterfaceDevice.HidNumericControlDescription)
    def get_numeric_control_by_description(self, control_description: HidNumericControlDescription, /) -> HidNumericControl: ...
    # Windows.Storage.Streams.IBuffer Windows.Devices.HumanInterfaceDevice.HidOutputReport::get_Data()
    @_property
    def data(self) -> windows_storage_streams.IBuffer: ...
    # System.Void Windows.Devices.HumanInterfaceDevice.HidOutputReport::put_Data(Windows.Storage.Streams.IBuffer)
    @data.setter
    def data(self, value: windows_storage_streams.IBuffer) -> None: ...
    # System.UInt16 Windows.Devices.HumanInterfaceDevice.HidOutputReport::get_Id()
    @_property
    def id(self) -> winrt.system.UInt16: ...

