using System; using System.Threading.Tasks; namespace DesktopNotifications { /// /// Interface for notification managers that handle the presentation and lifetime of notifications. /// public interface INotificationManager : IDisposable { /// /// The action identifier the process was launched with. /// /// "default" denotes the platform-specific default action. /// On Windows this means the user simply clicked the notification body. /// /// string? LaunchActionId { get; } /// /// Raised when a notification was activated. The notion of "activation" varies from platform to platform. /// event EventHandler NotificationActivated; /// /// Raised when a notification was dismissed. The exact reason can be found in /// . /// event EventHandler NotificationDismissed; /// /// Initialized the notification manager. /// /// Task Initialize(); /// /// Schedules a notification for presentation. /// /// The notification to present. /// The expiration time marking the point when the notification gets removed. Task ShowNotification(Notification notification, DateTimeOffset? expirationTime = null); /// /// /// /// /// /// Task ScheduleNotification( Notification notification, DateTimeOffset deliveryTime, DateTimeOffset? expirationTime = null); } }