///
import { IContainer, NativeEndpoint } from '../di/resolvers';
import { HttpResponse } from "./response";
import { ISerializer } from "./serializers/serializer";
import { HttpRequest, VulcainPipeline } from "./vulcainPipeline";
import http = require('http');
export interface IServerAdapter {
init(container: IContainer, pipeline: VulcainPipeline): any;
start(port: number, callback: (err) => void): any;
registerRoute(e: NativeEndpoint): any;
getRoute(filter: (e: NativeEndpoint) => boolean): any;
}
export declare abstract class ServerAdapter implements IServerAdapter {
protected container: IContainer;
protected vulcainPipe: VulcainPipeline;
protected serializer: ISerializer;
private routes;
/**
*
*/
init(container: IContainer, vulcainPipeline: VulcainPipeline): void;
abstract start(port: number, callback: (err) => void): any;
protected processVulcainRequest(req: http.IncomingMessage, resp: http.ServerResponse, body: any, request?: HttpRequest): Promise;
protected sendResponse(resp: http.ServerResponse, response: HttpResponse): void;
protected createRequest(req: http.IncomingMessage): HttpRequest;
registerRoute(e: NativeEndpoint): void;
getRoute(filter: (e: NativeEndpoint) => boolean): NativeEndpoint;
}
export declare class HttpAdapter extends ServerAdapter {
private srv;
/**
*
*/
init(container: IContainer, vulcainPipeline: VulcainPipeline): void;
start(port: number, callback: (err) => void): void;
}