using System; using System.Threading.Tasks; namespace DesktopNotifications { /// /// Interface for notification managers that handle the presentation and lifetime of notifications. /// public interface INotificationManager : IDisposable { /// /// 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; /// /// /// /// ValueTask Initialize(); /// /// Schedules a notification for presentation. /// /// The notification to present. /// The expiration time marking the point when the notification gets removed. ValueTask ShowNotification(Notification notification, DateTimeOffset? expirationTime = null); } }