/// import * as http from 'http'; import Layer from './layer'; import { IRequest, IResponse, ILayer, ContextResolver, Middleware, IController } from './types'; export default class Server implements ILayer, IResponse, TContext> { private readonly _router; private readonly _currentContext; private readonly _defaultLayer; private readonly _server; constructor(context?: TContext); listen(port: number): Promise; context(resolver: ContextResolver): Layer, IResponse, TNewContext>; middleware = IRequest, MResponse extends IResponse = IResponse>(middleware: Middleware, IResponse, MRequest, MResponse>): Layer; route, LResponse extends IResponse>(template: string, method?: 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE'): IController; get server(): http.Server; close(): Promise; }