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

import enum
import datetime
import sys
import types
import typing

import winsdk._winrt as _winrt
import winsdk.windows.foundation

class AudioRoutingEndpoint(enum.IntEnum):
    DEFAULT = 0
    EARPIECE = 1
    SPEAKERPHONE = 2
    BLUETOOTH = 3
    WIRED_HEADSET = 4
    WIRED_HEADSET_SPEAKER_ONLY = 5
    BLUETOOTH_WITH_NOISE_AND_ECHO_CANCELLATION = 6
    BLUETOOTH_PREFERRED = 7

class AvailableAudioRoutingEndpoints(enum.IntFlag):
    NONE = 0
    EARPIECE = 0x1
    SPEAKERPHONE = 0x2
    BLUETOOTH = 0x4

Self = typing.TypeVar('Self')

class AudioRoutingManager(_winrt.Object):
    available_audio_endpoints: AvailableAudioRoutingEndpoints
    @staticmethod
    def _from(obj: _winrt.Object) -> AudioRoutingManager: ...
    def get_audio_endpoint(self) -> AudioRoutingEndpoint: ...
    @staticmethod
    def get_default() -> typing.Optional[AudioRoutingManager]: ...
    def set_audio_endpoint(self, endpoint: AudioRoutingEndpoint) -> None: ...
    def add_audio_endpoint_changed(self, endpoint_change_handler: winsdk.windows.foundation.TypedEventHandler[AudioRoutingManager, _winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_audio_endpoint_changed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

