# WARNING: Please don't edit this file. It was generated by Python/WinRT v2.3.0

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.applicationmodel.appservice as windows_applicationmodel_appservice
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.globalization as windows_globalization
import winrt.windows.media.speechrecognition as windows_media_speechrecognition
import winrt.windows.storage as windows_storage

from winrt.windows.applicationmodel.voicecommands import VoiceCommandCompletionReason, VoiceCommandContentTileType

Self = typing.TypeVar('Self')

@typing.final
class VoiceCommand(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> VoiceCommand: ...
    @_property
    def command_name(self) -> str: ...
    @_property
    def properties(self) -> typing.Optional[windows_foundation_collections.IMapView[str, windows_foundation_collections.IVectorView[str]]]: ...
    @_property
    def speech_recognition_result(self) -> typing.Optional[windows_media_speechrecognition.SpeechRecognitionResult]: ...

@typing.final
class VoiceCommandCompletedEventArgs(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> VoiceCommandCompletedEventArgs: ...
    @_property
    def reason(self) -> VoiceCommandCompletionReason: ...

@typing.final
class VoiceCommandConfirmationResult(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> VoiceCommandConfirmationResult: ...
    @_property
    def confirmed(self) -> bool: ...

@typing.final
class VoiceCommandContentTile(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> VoiceCommandContentTile: ...
    def __new__(cls: typing.Type[VoiceCommandContentTile]) -> VoiceCommandContentTile: ...
    @_property
    def title(self) -> str: ...
    @title.setter
    def title(self, value: str) -> None: ...
    @_property
    def text_line3(self) -> str: ...
    @text_line3.setter
    def text_line3(self, value: str) -> None: ...
    @_property
    def text_line2(self) -> str: ...
    @text_line2.setter
    def text_line2(self, value: str) -> None: ...
    @_property
    def text_line1(self) -> str: ...
    @text_line1.setter
    def text_line1(self, value: str) -> None: ...
    @_property
    def image(self) -> typing.Optional[windows_storage.IStorageFile]: ...
    @image.setter
    def image(self, value: typing.Optional[windows_storage.IStorageFile]) -> None: ...
    @_property
    def content_tile_type(self) -> VoiceCommandContentTileType: ...
    @content_tile_type.setter
    def content_tile_type(self, value: VoiceCommandContentTileType) -> None: ...
    @_property
    def app_launch_argument(self) -> str: ...
    @app_launch_argument.setter
    def app_launch_argument(self, value: str) -> None: ...
    @_property
    def app_context(self) -> typing.Optional[winrt.system.Object]: ...
    @app_context.setter
    def app_context(self, value: typing.Optional[winrt.system.Object]) -> None: ...

@typing.final
class VoiceCommandDefinition(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> VoiceCommandDefinition: ...
    def set_phrase_list_async(self, phrase_list_name: str, phrase_list: typing.Iterable[str], /) -> windows_foundation.IAsyncAction: ...
    @_property
    def language(self) -> str: ...
    @_property
    def name(self) -> str: ...

@typing.final
class VoiceCommandDefinitionManager_Static(type):
    def install_command_definitions_from_storage_file_async(cls, file: typing.Optional[windows_storage.StorageFile], /) -> windows_foundation.IAsyncAction: ...
    @_property
    def installed_command_definitions(cls) -> typing.Optional[windows_foundation_collections.IMapView[str, VoiceCommandDefinition]]: ...

@typing.final
class VoiceCommandDefinitionManager(winrt.system.Object, metaclass=VoiceCommandDefinitionManager_Static):
    pass

@typing.final
class VoiceCommandDisambiguationResult(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> VoiceCommandDisambiguationResult: ...
    @_property
    def selected_item(self) -> typing.Optional[VoiceCommandContentTile]: ...

@typing.final
class VoiceCommandResponse_Static(type):
    @typing.overload
    def create_response(cls, user_message: typing.Optional[VoiceCommandUserMessage], /) -> typing.Optional[VoiceCommandResponse]: ...
    @typing.overload
    def create_response(cls, message: typing.Optional[VoiceCommandUserMessage], content_tiles: typing.Iterable[VoiceCommandContentTile], /) -> typing.Optional[VoiceCommandResponse]: ...
    @typing.overload
    def create_response_for_prompt(cls, message: typing.Optional[VoiceCommandUserMessage], repeat_message: typing.Optional[VoiceCommandUserMessage], /) -> typing.Optional[VoiceCommandResponse]: ...
    @typing.overload
    def create_response_for_prompt(cls, message: typing.Optional[VoiceCommandUserMessage], repeat_message: typing.Optional[VoiceCommandUserMessage], content_tiles: typing.Iterable[VoiceCommandContentTile], /) -> typing.Optional[VoiceCommandResponse]: ...
    @_property
    def max_supported_voice_command_content_tiles(cls) -> winrt.system.UInt32: ...

@typing.final
class VoiceCommandResponse(winrt.system.Object, metaclass=VoiceCommandResponse_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> VoiceCommandResponse: ...
    @_property
    def repeat_message(self) -> typing.Optional[VoiceCommandUserMessage]: ...
    @repeat_message.setter
    def repeat_message(self, value: typing.Optional[VoiceCommandUserMessage]) -> None: ...
    @_property
    def message(self) -> typing.Optional[VoiceCommandUserMessage]: ...
    @message.setter
    def message(self, value: typing.Optional[VoiceCommandUserMessage]) -> None: ...
    @_property
    def app_launch_argument(self) -> str: ...
    @app_launch_argument.setter
    def app_launch_argument(self, value: str) -> None: ...
    @_property
    def voice_command_content_tiles(self) -> typing.Optional[windows_foundation_collections.IVector[VoiceCommandContentTile]]: ...

@typing.final
class VoiceCommandServiceConnection_Static(type):
    def from_app_service_trigger_details(cls, trigger_details: typing.Optional[windows_applicationmodel_appservice.AppServiceTriggerDetails], /) -> typing.Optional[VoiceCommandServiceConnection]: ...

@typing.final
class VoiceCommandServiceConnection(winrt.system.Object, metaclass=VoiceCommandServiceConnection_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> VoiceCommandServiceConnection: ...
    def get_voice_command_async(self) -> windows_foundation.IAsyncOperation[VoiceCommand]: ...
    def report_failure_async(self, response: typing.Optional[VoiceCommandResponse], /) -> windows_foundation.IAsyncAction: ...
    def report_progress_async(self, response: typing.Optional[VoiceCommandResponse], /) -> windows_foundation.IAsyncAction: ...
    def report_success_async(self, response: typing.Optional[VoiceCommandResponse], /) -> windows_foundation.IAsyncAction: ...
    def request_app_launch_async(self, response: typing.Optional[VoiceCommandResponse], /) -> windows_foundation.IAsyncAction: ...
    def request_confirmation_async(self, response: typing.Optional[VoiceCommandResponse], /) -> windows_foundation.IAsyncOperation[VoiceCommandConfirmationResult]: ...
    def request_disambiguation_async(self, response: typing.Optional[VoiceCommandResponse], /) -> windows_foundation.IAsyncOperation[VoiceCommandDisambiguationResult]: ...
    def add_voice_command_completed(self, handler: windows_foundation.TypedEventHandler[VoiceCommandServiceConnection, VoiceCommandCompletedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    def remove_voice_command_completed(self, token: windows_foundation.EventRegistrationToken, /) -> None: ...
    @_property
    def language(self) -> typing.Optional[windows_globalization.Language]: ...

@typing.final
class VoiceCommandUserMessage(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> VoiceCommandUserMessage: ...
    def __new__(cls: typing.Type[VoiceCommandUserMessage]) -> VoiceCommandUserMessage: ...
    @_property
    def spoken_message(self) -> str: ...
    @spoken_message.setter
    def spoken_message(self, value: str) -> None: ...
    @_property
    def display_message(self) -> str: ...
    @display_message.setter
    def display_message(self, value: str) -> None: ...

