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);
}
}