using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Events;
using MediaBrowser.Model.Plugins;
using MediaBrowser.Model.Session;
using MediaBrowser.Model.Sync;
using MediaBrowser.Model.Tasks;
using MediaBrowser.Model.Updates;
using System;
using System.Collections.Generic;
namespace MediaBrowser.Model.ApiClient
{
    /// 
    /// Interface IServerEvents
    /// 
    public interface IServerEvents
    {
        /// 
        /// Occurs when [user deleted].
        /// 
        event EventHandler> UserDeleted;
        /// 
        /// Occurs when [scheduled task ended].
        /// 
        event EventHandler> ScheduledTaskEnded;
        /// 
        /// Occurs when [package installing].
        /// 
        event EventHandler> PackageInstalling;
        /// 
        /// Occurs when [package installation failed].
        /// 
        event EventHandler> PackageInstallationFailed;
        /// 
        /// Occurs when [package installation completed].
        /// 
        event EventHandler> PackageInstallationCompleted;
        /// 
        /// Occurs when [package installation cancelled].
        /// 
        event EventHandler> PackageInstallationCancelled;
        /// 
        /// Occurs when [user updated].
        /// 
        event EventHandler> UserUpdated;
        /// 
        /// Occurs when [plugin uninstalled].
        /// 
        event EventHandler> PluginUninstalled;
        /// 
        /// Occurs when [library changed].
        /// 
        event EventHandler> LibraryChanged;
        /// 
        /// Occurs when [browse command].
        /// 
        event EventHandler> BrowseCommand;
        /// 
        /// Occurs when [play command].
        /// 
        event EventHandler> PlayCommand;
        /// 
        /// Occurs when [playstate command].
        /// 
        event EventHandler> PlaystateCommand;
        /// 
        /// Occurs when [message command].
        /// 
        event EventHandler> MessageCommand;
        /// 
        /// Occurs when [system command].
        /// 
        event EventHandler> GeneralCommand;
        /// 
        /// Occurs when [notification added].
        /// 
        event EventHandler NotificationAdded;
        /// 
        /// Occurs when [notification updated].
        /// 
        event EventHandler NotificationUpdated;
        /// 
        /// Occurs when [notifications marked read].
        /// 
        event EventHandler NotificationsMarkedRead;
        /// 
        /// Occurs when [server restarting].
        /// 
        event EventHandler ServerRestarting;
        /// 
        /// Occurs when [server shutting down].
        /// 
        event EventHandler ServerShuttingDown;
        /// 
        /// Occurs when [send text command].
        /// 
        event EventHandler> SendStringCommand;
        /// 
        /// Occurs when [set volume command].
        /// 
        event EventHandler> SetVolumeCommand;
        /// 
        /// Occurs when [set audio stream index command].
        /// 
        event EventHandler> SetAudioStreamIndexCommand;
        /// 
        /// Occurs when [set video stream index command].
        /// 
        event EventHandler> SetSubtitleStreamIndexCommand;
        /// 
        /// Occurs when [sessions updated].
        /// 
        event EventHandler> SessionsUpdated;
        /// 
        /// Occurs when [restart required].
        /// 
        event EventHandler RestartRequired;
        /// 
        /// Occurs when [user data changed].
        /// 
        event EventHandler> UserDataChanged;
        /// 
        /// Occurs when [playback start].
        /// 
        event EventHandler> PlaybackStart;
        /// 
        /// Occurs when [playback stopped].
        /// 
        event EventHandler> PlaybackStopped;
        /// 
        /// Occurs when [session ended].
        /// 
        event EventHandler> SessionEnded;
        /// 
        /// Occurs when [synchronize job created].
        /// 
        event EventHandler> SyncJobCreated;
        /// 
        /// Occurs when [synchronize job cancelled].
        /// 
        event EventHandler> SyncJobCancelled;
        /// 
        /// Occurs when [synchronize jobs updated].
        /// 
        event EventHandler>> SyncJobsUpdated;
        /// 
        /// Occurs when [synchronize job updated].
        /// 
        event EventHandler> SyncJobUpdated;
    }
}