using System.Collections.Generic;
using System.Threading;
using AsbCloudApp.Data;
namespace AsbCloudApp.Services;
///
/// Сервис для добавление уведомлений в очередь
///
public interface INotificationSendingQueueService
{
///
/// Флаг для проверки пустая ли коллекция
///
bool IsEmpty { get; }
///
/// Добавление одного уведомления в очередь
///
///
void Enqueue(NotificationDto notificationDto);
///
/// Добавление нескольких уведомлений в очередь
///
///
void EnqueueRange(IEnumerable notifications);
///
/// Извлечение элемента из очереди и его удаление
///
///
///
bool TryDequeue(out NotificationDto notification);
///
/// Метод ожидания нового уведомления
///
///
void Wait(CancellationToken cancellationToken);
}