declare namespace Jymfony.Component.HttpServer {
    import EventDispatcherInterface = Jymfony.Contracts.EventDispatcher.EventDispatcherInterface;
    import ControllerResolverInterface = Jymfony.Component.HttpFoundation.Controller.ControllerResolverInterface;
    import RouteCollection = Jymfony.Component.Routing.RouteCollection;
    import LoggerInterface = Jymfony.Contracts.Logger.LoggerInterface;
    import ArgumentResolverInterface = Jymfony.Component.HttpServer.Controller.ArgumentResolverInterface;

    interface ListenOptions {
        port?: number;
        host?: string;
        path?: string;
    }

    export class 
 extends RequestHandler {
        protected _http: any;

        protected _host?: string | undefined;

        protected _port?: string | undefined;

        /**
         * Constructor.
         */
        __construct(dispatcher: EventDispatcherInterface, resolver: ControllerResolverInterface, argumentResolver: ArgumentResolverInterface): void;
        constructor(dispatcher: EventDispatcherInterface, resolver: ControllerResolverInterface, argumentResolver: ArgumentResolverInterface);

        /**
         * Creates a new Http server instance.
         */
        static create(routes: RouteCollection, logger?: LoggerInterface): HttpServer;

        /**
         * Listen and handle connections.
         */
        listen(opts?: ListenOptions): Promise<void>;

        /**
         * Closes the server.
         */
        close(): Promise<void>;

        /**
         * Creates a new http server.
         */
        protected _createServer(): any;

        /**
         * Converts an IncomingMessage to an HttpFoundation request
         * and sends it to the Kernel.
         */
        protected _handleRequest(req: any, res: any): Promise<void>;

        /**
         * Handles an incoming request from the http server.
         */
        protected _incomingRequest(req: any, res: any): Promise<void>;
    }
}

HttpServer