using MediaBrowser.Common.Net;
using System;
using System.Collections.Generic;
namespace MediaBrowser.Controller.Net
{
    /// 
    /// Interface IHttpServer
    /// 
    public interface IHttpServer : IDisposable
    {
        /// 
        /// Gets the URL prefix.
        /// 
        /// The URL prefix.
        IEnumerable UrlPrefixes { get; }
        /// 
        /// Starts the specified server name.
        /// 
        /// The URL prefixes.
        void StartServer(IEnumerable urlPrefixes);
        /// 
        /// Gets a value indicating whether [supports web sockets].
        /// 
        /// true if [supports web sockets]; otherwise, false.
        bool SupportsWebSockets { get; }
        /// 
        /// Gets the local end points.
        /// 
        /// The local end points.
        IEnumerable LocalEndPoints { get; }
        /// 
        /// Stops this instance.
        /// 
        void Stop();
        /// 
        /// Gets or sets a value indicating whether [enable HTTP request logging].
        /// 
        /// true if [enable HTTP request logging]; otherwise, false.
        bool EnableHttpRequestLogging { get; set; }
        /// 
        /// Occurs when [web socket connected].
        /// 
        event EventHandler WebSocketConnected;
        /// 
        /// Inits this instance.
        /// 
        void Init(IEnumerable services);
    }
}