# 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.foundation.collections
import winrt.windows.gaming.input
import winrt.windows.gaming.input.custom
import winrt.windows.system

from winrt.windows.gaming.input.preview import DeviceCommand, GameControllerBatteryChargingState, GameControllerBatteryKind, GameControllerBatteryLevel, GameControllerFirmwareCorruptReason, HeadsetLevel, HeadsetOperation, RemappingButtonCategory

Self = typing.TypeVar('Self')

@typing.final
class HeadsetGeqGains:
    band1_gain: winrt.system.Int32
    band2_gain: winrt.system.Int32
    band3_gain: winrt.system.Int32
    band4_gain: winrt.system.Int32
    band5_gain: winrt.system.Int32
    def __init__(self, band1_gain: winrt.system.Int32, band2_gain: winrt.system.Int32, band3_gain: winrt.system.Int32, band4_gain: winrt.system.Int32, band5_gain: winrt.system.Int32) -> None: ...

@typing.final
class GameControllerProviderInfo_Static(type):
    def get_parent_provider_id(cls, provider: typing.Optional[winrt.windows.gaming.input.custom.IGameControllerProvider], /) -> str: ...
    def get_provider_id(cls, provider: typing.Optional[winrt.windows.gaming.input.custom.IGameControllerProvider], /) -> str: ...

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

@typing.final
class LegacyGipGameControllerProvider_Static(type):
    def clear_pairing(cls, user: typing.Optional[winrt.windows.system.User], controller_provider_id: str, /) -> None: ...
    def from_game_controller(cls, controller: typing.Optional[winrt.windows.gaming.input.IGameController], /) -> typing.Optional[LegacyGipGameControllerProvider]: ...
    def from_game_controller_provider(cls, provider: typing.Optional[winrt.windows.gaming.input.custom.IGameControllerProvider], /) -> typing.Optional[LegacyGipGameControllerProvider]: ...
    def is_copilot(cls, user: typing.Optional[winrt.windows.system.User], controller_provider_id: str, /) -> str: ...
    def is_pilot(cls, user: typing.Optional[winrt.windows.system.User], controller_provider_id: str, /) -> str: ...
    def pair_pilot_to_copilot(cls, user: typing.Optional[winrt.windows.system.User], pilot_controller_provider_id: str, copilot_controller_provider_id: str, /) -> None: ...

@typing.final
class LegacyGipGameControllerProvider(winrt.system.Object, metaclass=LegacyGipGameControllerProvider_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> LegacyGipGameControllerProvider: ...
    def execute_command(self, command: DeviceCommand, /) -> None: ...
    def get_device_firmware_corruption_state(self) -> GameControllerFirmwareCorruptReason: ...
    def get_extended_device_info(self) -> winrt.system.UInt8: ...
    def get_headset_operation(self, operation: HeadsetOperation, /) -> winrt.system.UInt8: ...
    def get_standard_controller_button_remapping(self, user: typing.Optional[winrt.windows.system.User], previous: bool, /) -> typing.Optional[winrt.windows.foundation.collections.IMapView[RemappingButtonCategory, winrt.system.Object]]: ...
    def is_interface_supported(self, interface_id: _uuid.UUID, /) -> bool: ...
    def set_headset_operation(self, operation: HeadsetOperation, buffer: winrt.system.Array[winrt.system.UInt8], /) -> None: ...
    def set_home_led_intensity(self, intensity: winrt.system.UInt8, /) -> None: ...
    def set_standard_controller_button_remapping(self, user: typing.Optional[winrt.windows.system.User], previous: bool, remapping: winrt.windows.foundation.collections.IMapView[RemappingButtonCategory, winrt.system.Object], /) -> None: ...
    @_property
    def app_compat_version(self) -> winrt.system.UInt32: ...
    @_property
    def battery_charging_state(self) -> GameControllerBatteryChargingState: ...
    @_property
    def battery_kind(self) -> GameControllerBatteryKind: ...
    @_property
    def battery_level(self) -> GameControllerBatteryLevel: ...
    @_property
    def is_firmware_corrupted(self) -> bool: ...
    @_property
    def is_synthetic_device(self) -> bool: ...
    @_property
    def preferred_types(self) -> typing.Optional[winrt.windows.foundation.collections.IVectorView[str]]: ...

