using System;
namespace MediaBrowser.Model.ApiClient
{
    /// 
    /// Interface IServerEvents
    /// 
    public interface IServerEvents
    {
        /// 
        /// Occurs when [user deleted].
        /// 
        event EventHandler UserDeleted;
        /// 
        /// Occurs when [scheduled task started].
        /// 
        event EventHandler ScheduledTaskStarted;
        /// 
        /// 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 SystemCommand;
        /// 
        /// 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 [sessions updated].
        /// 
        event EventHandler SessionsUpdated;
        /// 
        /// Occurs when [restart required].
        /// 
        event EventHandler RestartRequired;
        /// 
        /// Occurs when [user data changed].
        /// 
        event EventHandler UserDataChanged;
        /// 
        /// Occurs when [connected].
        /// 
        event EventHandler Connected;
        /// 
        /// Gets a value indicating whether this instance is connected.
        /// 
        /// true if this instance is connected; otherwise, false.
        bool IsConnected { get; }
    }
}