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

import enum
import datetime
import sys
import types
import typing

import winsdk.system
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(winsdk.system.Object):
    is_input_redirected: typing.ClassVar[winsdk.system.Boolean]
    visible: typing.ClassVar[winsdk.system.Boolean]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> GameBar: ...
    @staticmethod
    def add_is_input_redirected_changed(handler: winsdk.windows.foundation.EventHandler[winsdk.system.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[winsdk.system.Object], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @staticmethod
    def remove_visibility_changed(token: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

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

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

class GameChatOverlayMessageSource(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.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(winsdk.system.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: winsdk.system.Object, /) -> GameUIProviderActivatedEventArgs: ...
    def report_completed(self, results: typing.Optional[winsdk.windows.foundation.collections.ValueSet], /) -> None: ...

