using MediaBrowser.Controller.Net;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using MediaBrowser.Model.Services;
namespace Emby.Server.Implementations.HttpServer
{
    public interface IHttpListener : IDisposable
    {
        /// 
        /// Gets or sets the error handler.
        /// 
        /// The error handler.
        Action ErrorHandler { get; set; }
        /// 
        /// Gets or sets the request handler.
        /// 
        /// The request handler.
        Func RequestHandler { get; set; }
        /// 
        /// Gets or sets the web socket handler.
        /// 
        /// The web socket handler.
        Action WebSocketConnected { get; set; }
        /// 
        /// Gets or sets the web socket connecting.
        /// 
        /// The web socket connecting.
        Action WebSocketConnecting { get; set; }
        
        /// 
        /// Starts this instance.
        /// 
        /// The URL prefixes.
        void Start(IEnumerable urlPrefixes);
        /// 
        /// Stops this instance.
        /// 
        void Stop();
    }
}