using MediaBrowser.Model.Notifications;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.Notifications
{
    public interface INotificationManager
    {
        /// 
        /// Sends the notification.
        /// 
        /// The request.
        /// The cancellation token.
        /// Task.
        Task SendNotification(NotificationRequest request, CancellationToken cancellationToken);
        /// 
        /// Adds the parts.
        /// 
        /// The services.
        /// The notification type factories.
        void AddParts(IEnumerable services, IEnumerable notificationTypeFactories);
        /// 
        /// Gets the notification types.
        /// 
        /// IEnumerable{NotificationTypeInfo}.
        IEnumerable GetNotificationTypes();
        /// 
        /// Gets the notification services.
        /// 
        /// IEnumerable{NotificationServiceInfo}.
        IEnumerable GetNotificationServices();
    }
}