using System.Collections.Generic; using DysonNetwork.Common.Models; using NodaTime; namespace DysonNetwork.Pass.Features.Account.Interfaces; public interface INotificationService { Task UnsubscribePushNotifications(string deviceId); Task SubscribePushNotification( Models.Account account, NotificationPushProvider provider, string deviceId, string deviceToken ); Task SendNotification( Models.Account account, string topic, string? title = null, string? subtitle = null, string? content = null, Dictionary? meta = null, string? actionUri = null, bool isSilent = false, bool save = true ); Task DeliveryNotification(Notification notification); Task MarkNotificationsViewed(ICollection notifications); Task BroadcastNotification(Notification notification, bool save = false); Task SendNotificationBatch(Notification notification, List accounts, bool save = false); }