# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.2.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
import winrt.windows.ui.notifications as windows_ui_notifications

from winrt.windows.ui.notifications.management import UserNotificationListenerAccessStatus

Self = typing.TypeVar('Self')

@typing.final
class UserNotificationListener_Static(winrt._winrt.IInspectable_Static):
    # Windows.UI.Notifications.Management.UserNotificationListener Windows.UI.Notifications.Management.UserNotificationListener::get_Current()
    @_property
    def current(cls) -> UserNotificationListener: ...

@typing.final
class UserNotificationListener(winrt.system.Object, metaclass=UserNotificationListener_Static):
    # System.Void Windows.UI.Notifications.Management.UserNotificationListener::ClearNotifications()
    def clear_notifications(self) -> None: ...
    # Windows.UI.Notifications.Management.UserNotificationListenerAccessStatus Windows.UI.Notifications.Management.UserNotificationListener::GetAccessStatus()
    def get_access_status(self) -> UserNotificationListenerAccessStatus: ...
    # Windows.UI.Notifications.UserNotification Windows.UI.Notifications.Management.UserNotificationListener::GetNotification(System.UInt32)
    def get_notification(self, notification_id: winrt.system.UInt32, /) -> windows_ui_notifications.UserNotification: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.UI.Notifications.UserNotification>> Windows.UI.Notifications.Management.UserNotificationListener::GetNotificationsAsync(Windows.UI.Notifications.NotificationKinds)
    def get_notifications_async(self, kinds: windows_ui_notifications.NotificationKinds, /) -> windows_foundation.IAsyncOperation[typing.Sequence[windows_ui_notifications.UserNotification]]: ...
    # System.Void Windows.UI.Notifications.Management.UserNotificationListener::RemoveNotification(System.UInt32)
    def remove_notification(self, notification_id: winrt.system.UInt32, /) -> None: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.UI.Notifications.Management.UserNotificationListenerAccessStatus> Windows.UI.Notifications.Management.UserNotificationListener::RequestAccessAsync()
    def request_access_async(self) -> windows_foundation.IAsyncOperation[UserNotificationListenerAccessStatus]: ...
    # Windows.Foundation.EventRegistrationToken Windows.UI.Notifications.Management.UserNotificationListener::add_NotificationChanged(Windows.Foundation.TypedEventHandler`2<Windows.UI.Notifications.Management.UserNotificationListener,Windows.UI.Notifications.UserNotificationChangedEventArgs>)
    def add_notification_changed(self, handler: windows_foundation.TypedEventHandler[UserNotificationListener, windows_ui_notifications.UserNotificationChangedEventArgs], /) -> windows_foundation.EventRegistrationToken: ...
    # System.Void Windows.UI.Notifications.Management.UserNotificationListener::remove_NotificationChanged(Windows.Foundation.EventRegistrationToken)
    def remove_notification_changed(self, token: typing.Union[windows_foundation.EventRegistrationToken, typing.Tuple[winrt.system.Int64]], /) -> None: ...

