using System; using System.Collections.Generic; using System.Threading.Tasks; using Wino.Core.Domain.Entities.Calendar; using Wino.Core.Domain.Entities.Mail; using Wino.Core.Domain.Entities.Shared; namespace Wino.Core.Domain.Interfaces; public interface INotificationBuilder { /// /// Creates toast notifications for new mails. /// Task CreateNotificationsAsync(IEnumerable newMailItems); /// /// Gets the unread Inbox messages for each account and updates the taskbar icon. /// /// Task UpdateTaskbarIconBadgeAsync(); /// /// Adds to the calendar app-entry badge count for newly downloaded events. /// Task AddCalendarTaskbarBadgeCountAsync(int newlyDownloadedCount); /// /// Clears the calendar app-entry badge. /// Task ClearCalendarTaskbarBadgeAsync(); /// /// Removes the toast notification for a specific mail by unique id. /// void RemoveNotification(Guid mailUniqueId); /// /// Shows a notification that the account requires attention. /// /// Account that needs attention. void CreateAttentionRequiredNotification(MailAccount account); /// /// Shows a notification when WebView2 runtime is unavailable. /// void CreateWebView2RuntimeMissingNotification(); /// /// Shows a notification when a Microsoft Store update is available. /// void CreateStoreUpdateNotification(); /// /// Shows the one-time release migration notification. /// void CreateReleaseMigrationNotification(); /// /// Creates a calendar reminder toast for the specified calendar item. /// Task CreateCalendarReminderNotificationAsync(CalendarItem calendarItem, long reminderDurationInSeconds); }