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; }
        /// 
        /// Gets the certificate path.
        /// 
        /// The certificate path.
        string CertificatePath { get; }
        /// 
        /// Starts the specified server name.
        /// 
        /// The URL prefixes.
        /// If an https prefix is specified, 
        /// the ssl certificate localtion on the file system.
        void StartServer(IEnumerable urlPrefixes, string certificatePath);
        /// 
        /// Gets the local end points.
        /// 
        /// The local end points.
        IEnumerable LocalEndPoints { get; }
        /// 
        /// Stops this instance.
        /// 
        void Stop();
        /// 
        /// Occurs when [web socket connected].
        /// 
        event EventHandler WebSocketConnected;
        /// 
        /// Occurs when [web socket connecting].
        /// 
        event EventHandler WebSocketConnecting;
        /// 
        /// Inits this instance.
        /// 
        void Init(IEnumerable services);
    }
}