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(); /// /// 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); /// /// Creates a calendar reminder toast for the specified calendar item. /// Task CreateCalendarReminderNotificationAsync(CalendarItem calendarItem, long reminderDurationInSeconds); }