using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using MediaBrowser.Model.Events;
using MediaBrowser.Model.Services;
using Microsoft.AspNetCore.Http;
namespace MediaBrowser.Controller.Net
{
    /// 
    /// Interface IHttpServer.
    /// 
    public interface IHttpServer
    {
        /// 
        /// Gets the URL prefix.
        /// 
        /// The URL prefix.
        string[] UrlPrefixes { get; }
        /// 
        /// Occurs when [web socket connected].
        /// 
        event EventHandler> WebSocketConnected;
        /// 
        /// Inits this instance.
        /// 
        void Init(IEnumerable serviceTypes, IEnumerable listener, IEnumerable urlPrefixes);
        /// 
        /// If set, all requests will respond with this message
        /// 
        string GlobalResponse { get; set; }
        /// 
        /// The HTTP request handler
        /// 
        /// 
        /// 
        Task RequestHandler(HttpContext context);
        /// 
        /// Get the default CORS headers
        /// 
        /// 
        /// 
        IDictionary GetDefaultCorsHeaders(IRequest req);
    }
}