# 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.applicationmodel.activation
import winsdk.windows.foundation
import winsdk.windows.foundation.collections

class GameChatMessageOrigin(enum.IntEnum):
    VOICE = 0
    TEXT = 1

class GameChatOverlayPosition(enum.IntEnum):
    BOTTOM_CENTER = 0
    BOTTOM_LEFT = 1
    BOTTOM_RIGHT = 2
    MIDDLE_RIGHT = 3
    MIDDLE_LEFT = 4
    TOP_CENTER = 5
    TOP_LEFT = 6
    TOP_RIGHT = 7

Self = typing.TypeVar('Self')

class GameBar(_winrt.Object):
    is_input_redirected: _winrt.Boolean
    visible: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> GameBar: ...
    @staticmethod
    def add_is_input_redirected_changed(handler: winsdk.windows.foundation.EventHandler[_winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @staticmethod
    def remove_is_input_redirected_changed(token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...
    @staticmethod
    def add_visibility_changed(handler: winsdk.windows.foundation.EventHandler[_winrt.Object]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @staticmethod
    def remove_visibility_changed(token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class GameChatMessageReceivedEventArgs(_winrt.Object):
    app_display_name: str
    app_id: str
    message: str
    origin: GameChatMessageOrigin
    sender_name: str
    @staticmethod
    def _from(obj: _winrt.Object) -> GameChatMessageReceivedEventArgs: ...

class GameChatOverlay(_winrt.Object):
    desired_position: GameChatOverlayPosition
    @staticmethod
    def _from(obj: _winrt.Object) -> GameChatOverlay: ...
    def add_message(self, sender: str, message: str, origin: GameChatMessageOrigin) -> None: ...
    @staticmethod
    def get_default() -> typing.Optional[GameChatOverlay]: ...

class GameChatOverlayMessageSource(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> GameChatOverlayMessageSource: ...
    def __new__(cls: typing.Type[GameChatOverlayMessageSource]) -> GameChatOverlayMessageSource:...
    def set_delay_before_closing_after_message_received(self, value: datetime.timedelta) -> None: ...
    def add_message_received(self, handler: winsdk.windows.foundation.TypedEventHandler[GameChatOverlayMessageSource, GameChatMessageReceivedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_message_received(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class GameUIProviderActivatedEventArgs(_winrt.Object):
    kind: winsdk.windows.applicationmodel.activation.ActivationKind
    previous_execution_state: winsdk.windows.applicationmodel.activation.ApplicationExecutionState
    splash_screen: typing.Optional[winsdk.windows.applicationmodel.activation.SplashScreen]
    game_u_i_args: typing.Optional[winsdk.windows.foundation.collections.ValueSet]
    @staticmethod
    def _from(obj: _winrt.Object) -> GameUIProviderActivatedEventArgs: ...
    def report_completed(self, results: typing.Optional[winsdk.windows.foundation.collections.ValueSet]) -> None: ...

