/// import './compatibility'; import { HttpError } from 'http-errors'; import { Server, IncomingMessage, ServerResponse } from 'http'; import { ListenOptions } from 'net'; import { WebRequest } from './WebRequest'; import { WebResponse } from './WebResponse'; import { WebContext } from './WebContext'; import { Application } from './Application'; import { WebController } from '../routers/WebController'; import { Controller } from '../routers/Controller'; import { CookieOptions } from '../utils/cookie'; interface Options { routesPath?: string | string[]; proxy?: boolean; proxyIpHeader?: string; env?: string; maxIpsCount?: number; subdomainOffset?: number; locale?: string; cookie?: CookieOptions; } export declare type FomexError = Error | HttpError | NodeJS.ErrnoException; export declare class WebApplication extends Application { protected readonly options: Required; constructor(options?: Options); listen(port?: number, hostname?: string, backlog?: number, listeningListener?: () => void): Server; listen(port?: number, hostname?: string, listeningListener?: () => void): Server; listen(port?: number, backlog?: number, listeningListener?: () => void): Server; listen(port?: number, listeningListener?: () => void): Server; listen(path: string, backlog?: number, listeningListener?: () => void): Server; listen(path: string, listeningListener?: () => void): Server; listen(options: ListenOptions, listeningListener?: () => void): Server; listen(handle: any, backlog?: number, listeningListener?: () => void): Server; listen(handle: any, listeningListener?: () => void): Server; on(event: 'error' | 'errorRespond', listener: (err: FomexError, ctx: WebContext) => void): this; on(event: string | symbol, listener: (...args: any[]) => void): this; once(event: 'error' | 'errorRespond', listener: (err: FomexError, ctx: WebContext) => void): this; once(event: string | symbol, listener: (...args: any[]) => void): this; /** * Useful for testing scenario. */ appendRoutes(routes: WebController | WebController[]): this; protected getControllerInstance(): new (...args: any[]) => Controller; protected serverCallback(): (req: IncomingMessage, res: ServerResponse) => void; onerror(err: FomexError): void; protected createRequest(req: IncomingMessage): WebRequest; protected createResponse(res: ServerResponse): WebResponse; protected createContext(req: IncomingMessage, res: ServerResponse): WebContext<{}, {}>; protected handleRequest(ctx: WebContext): void; protected inspect(): { subdomainOffset: number; proxy: boolean; env: string; }; protected toJSON(): { subdomainOffset: number; proxy: boolean; env: string; }; protected respond(ctx: WebContext): any; } export {};