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

import enum
import sys
import types
import typing
import uuid

import winsdk._winrt as _winrt

try:
    import winsdk.windows.applicationmodel.appservice
except Exception:
    pass

try:
    import winsdk.windows.foundation
except Exception:
    pass

try:
    import winsdk.windows.foundation.collections
except Exception:
    pass

try:
    import winsdk.windows.globalization
except Exception:
    pass

try:
    import winsdk.windows.media.speechrecognition
except Exception:
    pass

try:
    import winsdk.windows.storage
except Exception:
    pass

class VoiceCommandCompletionReason(enum.IntEnum):
    UNKNOWN = 0
    COMMUNICATION_FAILED = 1
    RESOURCE_LIMITS_EXCEEDED = 2
    CANCELED = 3
    TIMEOUT_EXCEEDED = 4
    APP_LAUNCHED = 5
    COMPLETED = 6

class VoiceCommandContentTileType(enum.IntEnum):
    TITLE_ONLY = 0
    TITLE_WITH_TEXT = 1
    TITLE_WITH68X68_ICON = 2
    TITLE_WITH68X68_ICON_AND_TEXT = 3
    TITLE_WITH68X92_ICON = 4
    TITLE_WITH68X92_ICON_AND_TEXT = 5
    TITLE_WITH280X140_ICON = 6
    TITLE_WITH280X140_ICON_AND_TEXT = 7

class VoiceCommand(_winrt.Object):
    command_name: str
    properties: winsdk.windows.foundation.collections.IMapView[str, winsdk.windows.foundation.collections.IVectorView[str]]
    speech_recognition_result: winsdk.windows.media.speechrecognition.SpeechRecognitionResult
    @staticmethod
    def _from(obj: _winrt.Object) -> VoiceCommand: ...

class VoiceCommandCompletedEventArgs(_winrt.Object):
    reason: VoiceCommandCompletionReason
    @staticmethod
    def _from(obj: _winrt.Object) -> VoiceCommandCompletedEventArgs: ...

class VoiceCommandConfirmationResult(_winrt.Object):
    confirmed: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> VoiceCommandConfirmationResult: ...

class VoiceCommandContentTile(_winrt.Object):
    title: str
    text_line3: str
    text_line2: str
    text_line1: str
    image: winsdk.windows.storage.IStorageFile
    content_tile_type: VoiceCommandContentTileType
    app_launch_argument: str
    app_context: _winrt.Object
    @staticmethod
    def _from(obj: _winrt.Object) -> VoiceCommandContentTile: ...
    @typing.overload
    def __init__(self) -> None: ...

class VoiceCommandDefinition(_winrt.Object):
    language: str
    name: str
    @staticmethod
    def _from(obj: _winrt.Object) -> VoiceCommandDefinition: ...
    @typing.overload
    def set_phrase_list_async(self, phrase_list_name: str, phrase_list: typing.Iterable[str]) -> winsdk.windows.foundation.IAsyncAction: ...

class VoiceCommandDefinitionManager(_winrt.Object):
    installed_command_definitions: winsdk.windows.foundation.collections.IMapView[str, VoiceCommandDefinition]
    @staticmethod
    def _from(obj: _winrt.Object) -> VoiceCommandDefinitionManager: ...
    @typing.overload
    @staticmethod
    def install_command_definitions_from_storage_file_async(file: winsdk.windows.storage.StorageFile) -> winsdk.windows.foundation.IAsyncAction: ...

class VoiceCommandDisambiguationResult(_winrt.Object):
    selected_item: VoiceCommandContentTile
    @staticmethod
    def _from(obj: _winrt.Object) -> VoiceCommandDisambiguationResult: ...

class VoiceCommandResponse(_winrt.Object):
    repeat_message: VoiceCommandUserMessage
    message: VoiceCommandUserMessage
    app_launch_argument: str
    voice_command_content_tiles: winsdk.windows.foundation.collections.IVector[VoiceCommandContentTile]
    max_supported_voice_command_content_tiles: _winrt.UInt32
    @staticmethod
    def _from(obj: _winrt.Object) -> VoiceCommandResponse: ...
    @typing.overload
    @staticmethod
    def create_response(user_message: VoiceCommandUserMessage) -> VoiceCommandResponse: ...
    @typing.overload
    @staticmethod
    def create_response(message: VoiceCommandUserMessage, content_tiles: typing.Iterable[VoiceCommandContentTile]) -> VoiceCommandResponse: ...
    @typing.overload
    @staticmethod
    def create_response_for_prompt(message: VoiceCommandUserMessage, repeat_message: VoiceCommandUserMessage) -> VoiceCommandResponse: ...
    @typing.overload
    @staticmethod
    def create_response_for_prompt(message: VoiceCommandUserMessage, repeat_message: VoiceCommandUserMessage, content_tiles: typing.Iterable[VoiceCommandContentTile]) -> VoiceCommandResponse: ...

class VoiceCommandServiceConnection(_winrt.Object):
    language: winsdk.windows.globalization.Language
    @staticmethod
    def _from(obj: _winrt.Object) -> VoiceCommandServiceConnection: ...
    @typing.overload
    @staticmethod
    def from_app_service_trigger_details(trigger_details: winsdk.windows.applicationmodel.appservice.AppServiceTriggerDetails) -> VoiceCommandServiceConnection: ...
    @typing.overload
    def get_voice_command_async(self) -> winsdk.windows.foundation.IAsyncOperation[VoiceCommand]: ...
    @typing.overload
    def report_failure_async(self, response: VoiceCommandResponse) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_progress_async(self, response: VoiceCommandResponse) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def report_success_async(self, response: VoiceCommandResponse) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def request_app_launch_async(self, response: VoiceCommandResponse) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def request_confirmation_async(self, response: VoiceCommandResponse) -> winsdk.windows.foundation.IAsyncOperation[VoiceCommandConfirmationResult]: ...
    @typing.overload
    def request_disambiguation_async(self, response: VoiceCommandResponse) -> winsdk.windows.foundation.IAsyncOperation[VoiceCommandDisambiguationResult]: ...
    @typing.overload
    def add_voice_command_completed(self, handler: winsdk.windows.foundation.TypedEventHandler[VoiceCommandServiceConnection, VoiceCommandCompletedEventArgs]) -> winsdk.windows.foundation.EventRegistrationToken: ...
    @typing.overload
    def remove_voice_command_completed(self, token: winsdk.windows.foundation.EventRegistrationToken) -> None: ...

class VoiceCommandUserMessage(_winrt.Object):
    spoken_message: str
    display_message: str
    @staticmethod
    def _from(obj: _winrt.Object) -> VoiceCommandUserMessage: ...
    @typing.overload
    def __init__(self) -> None: ...

