# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.1.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.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections

from winui3.microsoft.windows.appnotifications import AppNotificationPriority, AppNotificationProgressResult, AppNotificationSetting

Self = typing.TypeVar('Self')

@typing.final
class AppNotification(winrt.system.Object):
    def __new__(cls: typing.Type[Self], payload: str) -> Self: ...
    # System.String Microsoft.Windows.AppNotifications.AppNotification::get_Tag()
    @_property
    def tag(self) -> str: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotification::put_Tag(System.String)
    @tag.setter
    def tag(self, value: str) -> None: ...
    # System.Boolean Microsoft.Windows.AppNotifications.AppNotification::get_SuppressDisplay()
    @_property
    def suppress_display(self) -> bool: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotification::put_SuppressDisplay(System.Boolean)
    @suppress_display.setter
    def suppress_display(self, value: bool) -> None: ...
    # Microsoft.Windows.AppNotifications.AppNotificationProgressData Microsoft.Windows.AppNotifications.AppNotification::get_Progress()
    @_property
    def progress(self) -> AppNotificationProgressData: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotification::put_Progress(Microsoft.Windows.AppNotifications.AppNotificationProgressData)
    @progress.setter
    def progress(self, value: AppNotificationProgressData) -> None: ...
    # Microsoft.Windows.AppNotifications.AppNotificationPriority Microsoft.Windows.AppNotifications.AppNotification::get_Priority()
    @_property
    def priority(self) -> AppNotificationPriority: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotification::put_Priority(Microsoft.Windows.AppNotifications.AppNotificationPriority)
    @priority.setter
    def priority(self, value: AppNotificationPriority) -> None: ...
    # System.String Microsoft.Windows.AppNotifications.AppNotification::get_Group()
    @_property
    def group(self) -> str: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotification::put_Group(System.String)
    @group.setter
    def group(self, value: str) -> None: ...
    # System.Boolean Microsoft.Windows.AppNotifications.AppNotification::get_ExpiresOnReboot()
    @_property
    def expires_on_reboot(self) -> bool: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotification::put_ExpiresOnReboot(System.Boolean)
    @expires_on_reboot.setter
    def expires_on_reboot(self, value: bool) -> None: ...
    # Windows.Foundation.DateTime Microsoft.Windows.AppNotifications.AppNotification::get_Expiration()
    @_property
    def expiration(self) -> datetime.datetime: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotification::put_Expiration(Windows.Foundation.DateTime)
    @expiration.setter
    def expiration(self, value: datetime.datetime) -> None: ...
    # System.UInt32 Microsoft.Windows.AppNotifications.AppNotification::get_Id()
    @_property
    def id(self) -> winrt.system.UInt32: ...
    # System.String Microsoft.Windows.AppNotifications.AppNotification::get_Payload()
    @_property
    def payload(self) -> str: ...

@typing.final
class AppNotificationActivatedEventArgs(winrt.system.Object):
    # System.String Microsoft.Windows.AppNotifications.AppNotificationActivatedEventArgs::get_Argument()
    @_property
    def argument(self) -> str: ...
    # Windows.Foundation.Collections.IMap`2<System.String,System.String> Microsoft.Windows.AppNotifications.AppNotificationActivatedEventArgs::get_UserInput()
    @_property
    def user_input(self) -> typing.MutableMapping[str, str]: ...
    # Windows.Foundation.Collections.IMap`2<System.String,System.String> Microsoft.Windows.AppNotifications.AppNotificationActivatedEventArgs::get_Arguments()
    @_property
    def arguments(self) -> typing.MutableMapping[str, str]: ...

@typing.final
class AppNotificationManager_Static(winrt._winrt.IInspectable_Static):
    # System.Boolean Microsoft.Windows.AppNotifications.AppNotificationManager::IsSupported()
    def is_supported(cls) -> bool: ...
    # Microsoft.Windows.AppNotifications.AppNotificationManager Microsoft.Windows.AppNotifications.AppNotificationManager::get_Default()
    @_property
    def default(cls) -> AppNotificationManager: ...

@typing.final
class AppNotificationManager(winrt.system.Object, metaclass=AppNotificationManager_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVector`1<Microsoft.Windows.AppNotifications.AppNotification>> Microsoft.Windows.AppNotifications.AppNotificationManager::GetAllAsync()
    def get_all_async(self) -> windows_foundation.IAsyncOperation[typing.MutableSequence[AppNotification]]: ...
    @typing.overload
    # System.Void Microsoft.Windows.AppNotifications.AppNotificationManager::Register()
    def register(self) -> None: ...
    @typing.overload
    # System.Void Microsoft.Windows.AppNotifications.AppNotificationManager::Register(System.String,Windows.Foundation.Uri)
    def register(self, display_name: str, icon_uri: windows_foundation.Uri, /) -> None: ...
    # Windows.Foundation.IAsyncAction Microsoft.Windows.AppNotifications.AppNotificationManager::RemoveAllAsync()
    def remove_all_async(self) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Microsoft.Windows.AppNotifications.AppNotificationManager::RemoveByGroupAsync(System.String)
    def remove_by_group_async(self, group: str, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Microsoft.Windows.AppNotifications.AppNotificationManager::RemoveByIdAsync(System.UInt32)
    def remove_by_id_async(self, notification_id: winrt.system.UInt32, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Microsoft.Windows.AppNotifications.AppNotificationManager::RemoveByTagAndGroupAsync(System.String,System.String)
    def remove_by_tag_and_group_async(self, tag: str, group: str, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Microsoft.Windows.AppNotifications.AppNotificationManager::RemoveByTagAsync(System.String)
    def remove_by_tag_async(self, tag: str, /) -> windows_foundation.IAsyncAction: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotificationManager::Show(Microsoft.Windows.AppNotifications.AppNotification)
    def show(self, notification: AppNotification, /) -> None: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotificationManager::Unregister()
    def unregister(self) -> None: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotificationManager::UnregisterAll()
    def unregister_all(self) -> None: ...
    # Windows.Foundation.IAsyncOperation`1<Microsoft.Windows.AppNotifications.AppNotificationProgressResult> Microsoft.Windows.AppNotifications.AppNotificationManager::UpdateAsync(Microsoft.Windows.AppNotifications.AppNotificationProgressData,System.String,System.String)
    def update_async(self, data: AppNotificationProgressData, tag: str, group: str, /) -> windows_foundation.IAsyncOperation[AppNotificationProgressResult]: ...
    # Windows.Foundation.IAsyncOperation`1<Microsoft.Windows.AppNotifications.AppNotificationProgressResult> Microsoft.Windows.AppNotifications.AppNotificationManager::UpdateAsync(Microsoft.Windows.AppNotifications.AppNotificationProgressData,System.String)
    def update_async2(self, data: AppNotificationProgressData, tag: str, /) -> windows_foundation.IAsyncOperation[AppNotificationProgressResult]: ...
    # Windows.Foundation.EventRegistrationToken Microsoft.Windows.AppNotifications.AppNotificationManager::add_NotificationInvoked(Windows.Foundation.TypedEventHandler`2<Microsoft.Windows.AppNotifications.AppNotificationManager,Microsoft.Windows.AppNotifications.AppNotificationActivatedEventArgs>)
    def add_notification_invoked(self, handler: windows_foundation.TypedEventHandler[AppNotificationManager, AppNotificationActivatedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotificationManager::remove_NotificationInvoked(Windows.Foundation.EventRegistrationToken)
    def remove_notification_invoked(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...
    # Microsoft.Windows.AppNotifications.AppNotificationSetting Microsoft.Windows.AppNotifications.AppNotificationManager::get_Setting()
    @_property
    def setting(self) -> AppNotificationSetting: ...

@typing.final
class AppNotificationProgressData(winrt.system.Object):
    def __new__(cls: typing.Type[Self], sequence_number: winrt.system.UInt32) -> Self: ...
    # System.String Microsoft.Windows.AppNotifications.AppNotificationProgressData::get_ValueStringOverride()
    @_property
    def value_string_override(self) -> str: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotificationProgressData::put_ValueStringOverride(System.String)
    @value_string_override.setter
    def value_string_override(self, value: str) -> None: ...
    # System.Double Microsoft.Windows.AppNotifications.AppNotificationProgressData::get_Value()
    @_property
    def value(self) -> winrt.system.Double: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotificationProgressData::put_Value(System.Double)
    @value.setter
    def value(self, value: winrt.system.Double) -> None: ...
    # System.String Microsoft.Windows.AppNotifications.AppNotificationProgressData::get_Title()
    @_property
    def title(self) -> str: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotificationProgressData::put_Title(System.String)
    @title.setter
    def title(self, value: str) -> None: ...
    # System.String Microsoft.Windows.AppNotifications.AppNotificationProgressData::get_Status()
    @_property
    def status(self) -> str: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotificationProgressData::put_Status(System.String)
    @status.setter
    def status(self, value: str) -> None: ...
    # System.UInt32 Microsoft.Windows.AppNotifications.AppNotificationProgressData::get_SequenceNumber()
    @_property
    def sequence_number(self) -> winrt.system.UInt32: ...
    # System.Void Microsoft.Windows.AppNotifications.AppNotificationProgressData::put_SequenceNumber(System.UInt32)
    @sequence_number.setter
    def sequence_number(self, value: winrt.system.UInt32) -> None: ...

