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

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.microsoft.windows.appnotifications
import winrt.windows.foundation
import winrt.windows.foundation.collections

from winrt.microsoft.windows.appnotifications.builder import AppNotificationAudioLooping, AppNotificationButtonStyle, AppNotificationDuration, AppNotificationImageCrop, AppNotificationScenario, AppNotificationSoundEvent

Self = typing.TypeVar('Self')

@typing.final
class AppNotificationBuilder_Static(type):
    def is_urgent_scenario_supported(cls) -> bool: ...

@typing.final
class AppNotificationBuilder(winrt.system.Object, metaclass=AppNotificationBuilder_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppNotificationBuilder: ...
    def __new__(cls: typing.Type[AppNotificationBuilder]) -> AppNotificationBuilder:...
    def add_argument(self, key: str, value: str, /) -> typing.Optional[AppNotificationBuilder]: ...
    def add_button(self, value: typing.Optional[AppNotificationButton], /) -> typing.Optional[AppNotificationBuilder]: ...
    def add_combo_box(self, value: typing.Optional[AppNotificationComboBox], /) -> typing.Optional[AppNotificationBuilder]: ...
    def add_progress_bar(self, value: typing.Optional[AppNotificationProgressBar], /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def add_text(self, text: str, /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def add_text(self, text: str, properties: typing.Optional[AppNotificationTextProperties], /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def add_text_box(self, id: str, /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def add_text_box(self, id: str, place_holder_text: str, title: str, /) -> typing.Optional[AppNotificationBuilder]: ...
    def build_notification(self) -> typing.Optional[winrt.microsoft.windows.appnotifications.AppNotification]: ...
    def mute_audio(self) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def set_app_logo_override(self, image_uri: typing.Optional[winrt.windows.foundation.Uri], /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def set_app_logo_override(self, image_uri: typing.Optional[winrt.windows.foundation.Uri], image_crop: AppNotificationImageCrop, /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def set_app_logo_override(self, image_uri: typing.Optional[winrt.windows.foundation.Uri], image_crop: AppNotificationImageCrop, alternate_text: str, /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def set_attribution_text(self, text: str, /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def set_attribution_text(self, text: str, language: str, /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def set_audio_event(self, app_notification_sound_event: AppNotificationSoundEvent, /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def set_audio_event(self, app_notification_sound_event: AppNotificationSoundEvent, loop: AppNotificationAudioLooping, /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def set_audio_uri(self, audio_uri: typing.Optional[winrt.windows.foundation.Uri], /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def set_audio_uri(self, audio_uri: typing.Optional[winrt.windows.foundation.Uri], loop: AppNotificationAudioLooping, /) -> typing.Optional[AppNotificationBuilder]: ...
    def set_duration(self, duration: AppNotificationDuration, /) -> typing.Optional[AppNotificationBuilder]: ...
    def set_group(self, group: str, /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def set_hero_image(self, image_uri: typing.Optional[winrt.windows.foundation.Uri], /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def set_hero_image(self, image_uri: typing.Optional[winrt.windows.foundation.Uri], alternate_text: str, /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def set_inline_image(self, image_uri: typing.Optional[winrt.windows.foundation.Uri], /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def set_inline_image(self, image_uri: typing.Optional[winrt.windows.foundation.Uri], image_crop: AppNotificationImageCrop, /) -> typing.Optional[AppNotificationBuilder]: ...
    @typing.overload
    def set_inline_image(self, image_uri: typing.Optional[winrt.windows.foundation.Uri], imagecrop: AppNotificationImageCrop, alternate_text: str, /) -> typing.Optional[AppNotificationBuilder]: ...
    def set_scenario(self, value: AppNotificationScenario, /) -> typing.Optional[AppNotificationBuilder]: ...
    def set_tag(self, value: str, /) -> typing.Optional[AppNotificationBuilder]: ...
    def set_time_stamp(self, value: datetime.datetime, /) -> typing.Optional[AppNotificationBuilder]: ...

@typing.final
class AppNotificationButton_Static(type):
    def is_button_style_supported(cls) -> bool: ...
    def is_tool_tip_supported(cls) -> bool: ...

@typing.final
class AppNotificationButton(winrt.system.Object, metaclass=AppNotificationButton_Static):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppNotificationButton: ...
    @typing.overload
    def __new__(cls: typing.Type[AppNotificationButton], content: str) -> AppNotificationButton:...
    @typing.overload
    def __new__(cls: typing.Type[AppNotificationButton]) -> AppNotificationButton:...
    def add_argument(self, key: str, value: str, /) -> typing.Optional[AppNotificationButton]: ...
    def set_button_style(self, value: AppNotificationButtonStyle, /) -> typing.Optional[AppNotificationButton]: ...
    def set_context_menu_placement(self) -> typing.Optional[AppNotificationButton]: ...
    def set_icon(self, value: typing.Optional[winrt.windows.foundation.Uri], /) -> typing.Optional[AppNotificationButton]: ...
    def set_input_id(self, value: str, /) -> typing.Optional[AppNotificationButton]: ...
    @typing.overload
    def set_invoke_uri(self, protocol_uri: typing.Optional[winrt.windows.foundation.Uri], /) -> typing.Optional[AppNotificationButton]: ...
    @typing.overload
    def set_invoke_uri(self, protocol_uri: typing.Optional[winrt.windows.foundation.Uri], target_app_id: str, /) -> typing.Optional[AppNotificationButton]: ...
    def set_tool_tip(self, value: str, /) -> typing.Optional[AppNotificationButton]: ...
    @_property
    def tool_tip(self) -> str: ...
    @tool_tip.setter
    def tool_tip(self, value: str) -> None: ...
    @_property
    def target_app_id(self) -> str: ...
    @target_app_id.setter
    def target_app_id(self, value: str) -> None: ...
    @_property
    def invoke_uri(self) -> typing.Optional[winrt.windows.foundation.Uri]: ...
    @invoke_uri.setter
    def invoke_uri(self, value: typing.Optional[winrt.windows.foundation.Uri]) -> None: ...
    @_property
    def input_id(self) -> str: ...
    @input_id.setter
    def input_id(self, value: str) -> None: ...
    @_property
    def icon(self) -> typing.Optional[winrt.windows.foundation.Uri]: ...
    @icon.setter
    def icon(self, value: typing.Optional[winrt.windows.foundation.Uri]) -> None: ...
    @_property
    def context_menu_placement(self) -> bool: ...
    @context_menu_placement.setter
    def context_menu_placement(self, value: bool) -> None: ...
    @_property
    def content(self) -> str: ...
    @content.setter
    def content(self, value: str) -> None: ...
    @_property
    def button_style(self) -> AppNotificationButtonStyle: ...
    @button_style.setter
    def button_style(self, value: AppNotificationButtonStyle) -> None: ...
    @_property
    def arguments(self) -> typing.Optional[winrt.windows.foundation.collections.IMap[str, str]]: ...
    @arguments.setter
    def arguments(self, value: typing.Optional[winrt.windows.foundation.collections.IMap[str, str]]) -> None: ...

@typing.final
class AppNotificationComboBox(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppNotificationComboBox: ...
    def __new__(cls: typing.Type[AppNotificationComboBox], id: str) -> AppNotificationComboBox:...
    def add_item(self, id: str, content: str, /) -> typing.Optional[AppNotificationComboBox]: ...
    def set_selected_item(self, id: str, /) -> typing.Optional[AppNotificationComboBox]: ...
    def set_title(self, value: str, /) -> typing.Optional[AppNotificationComboBox]: ...
    @_property
    def title(self) -> str: ...
    @title.setter
    def title(self, value: str) -> None: ...
    @_property
    def selected_item(self) -> str: ...
    @selected_item.setter
    def selected_item(self, value: str) -> None: ...
    @_property
    def items(self) -> typing.Optional[winrt.windows.foundation.collections.IMap[str, str]]: ...
    @items.setter
    def items(self, value: typing.Optional[winrt.windows.foundation.collections.IMap[str, str]]) -> None: ...

@typing.final
class AppNotificationProgressBar(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppNotificationProgressBar: ...
    def __new__(cls: typing.Type[AppNotificationProgressBar]) -> AppNotificationProgressBar:...
    def bind_status(self) -> typing.Optional[AppNotificationProgressBar]: ...
    def bind_title(self) -> typing.Optional[AppNotificationProgressBar]: ...
    def bind_value(self) -> typing.Optional[AppNotificationProgressBar]: ...
    def bind_value_string_override(self) -> typing.Optional[AppNotificationProgressBar]: ...
    def set_status(self, value: str, /) -> typing.Optional[AppNotificationProgressBar]: ...
    def set_title(self, value: str, /) -> typing.Optional[AppNotificationProgressBar]: ...
    def set_value(self, value: winrt.system.Double, /) -> typing.Optional[AppNotificationProgressBar]: ...
    def set_value_string_override(self, value: str, /) -> typing.Optional[AppNotificationProgressBar]: ...
    @_property
    def value_string_override(self) -> str: ...
    @value_string_override.setter
    def value_string_override(self, value: str) -> None: ...
    @_property
    def value(self) -> winrt.system.Double: ...
    @value.setter
    def value(self, value: winrt.system.Double) -> None: ...
    @_property
    def title(self) -> str: ...
    @title.setter
    def title(self, value: str) -> None: ...
    @_property
    def status(self) -> str: ...
    @status.setter
    def status(self, value: str) -> None: ...

@typing.final
class AppNotificationTextProperties(winrt.system.Object):
    @staticmethod
    def _from(obj: winrt.system.Object, /) -> AppNotificationTextProperties: ...
    def __new__(cls: typing.Type[AppNotificationTextProperties]) -> AppNotificationTextProperties:...
    def set_incoming_call_alignment(self) -> typing.Optional[AppNotificationTextProperties]: ...
    def set_language(self, value: str, /) -> typing.Optional[AppNotificationTextProperties]: ...
    def set_max_lines(self, value: winrt.system.Int32, /) -> typing.Optional[AppNotificationTextProperties]: ...
    @_property
    def max_lines(self) -> winrt.system.Int32: ...
    @max_lines.setter
    def max_lines(self, value: winrt.system.Int32) -> None: ...
    @_property
    def language(self) -> str: ...
    @language.setter
    def language(self, value: str) -> None: ...
    @_property
    def incoming_call_alignment(self) -> bool: ...
    @incoming_call_alignment.setter
    def incoming_call_alignment(self, value: bool) -> None: ...

