/// import { ServerResponse, IncomingMessage } from 'http'; type Listener> = (...args: T) => void; declare class EventEmitter< E extends Record> = Record, > { private listenerMap; on(key: K, listener: Listener): () => void; addListener(key: K, listener: Listener): () => void; off(key: K, listener: Listener): void; removeListener(key: K, listener: Listener): void; emit(key: K, ...args: E[K]): void; } type Headers$2 = Record>; declare class Response$1 { private _super; req: Request$1 | undefined; constructor(httpRes: ServerResponse); writeHead(statusCode: number, statusReason: string, headers: Headers$2): void; write(data: Buffer | string): void; end(): void; } type Events$2 = { end: []; }; declare class Request$1 extends EventEmitter { private _super; res: Response$1 | undefined; constructor(req: IncomingMessage); getMethod(): string; getURL(): string; getHeaders(): Record; getRemoteAddress(): string | undefined; getReadStream(): NodeJS.ReadableStream; read(_bytes: number): void; } type RedirectType = 'html' | '301' | '302' | '303'; type Cookie = { value: string; domain?: string; path?: string; expires?: Date; httpOnly?: boolean; secure?: boolean; }; declare class Response { private _super; private buffer; req: Request | undefined; constructor(res: Response$1); clear(type?: string, status?: string): void; status(status?: string | number): string | this; charset(charset?: string): string; headers< T extends | [] | [name: string] | [name: string, value: string | null] | [Record], >( ...args: T ): T extends [] ? Record> : T extends [string] ? string | undefined : Response; write(data: unknown): void; contentType(type: string): void; cookies< T extends | [] | [name: string] | [name: string, value: Cookie | string | null] | [Record], >( ...args: T ): T extends [] ? Record : T extends [string] ? Cookie | undefined : Response; _prepHeaders(): void; _writeHead(): void; end(...args: Array): void; die(...args: Array): void; redirect(url: string, type?: RedirectType): void; htmlRedirect(url: string): void; } type Headers$1 = Record>; type ParsedUrl = { raw: string; rawPath: string; path: string; search: string; qs: string; }; type UrlPartName = keyof ParsedUrl; type Events$1 = { 'parse-error': [Error]; 'no-route': []; end: []; }; declare class Request extends EventEmitter { private _super; private _headers; private _cookies; private _url; private _method; private _query; private _body; res: Response | undefined; constructor(req: Request$1); url(part?: UrlPartName): string; private getMethod; method( ...args: T ): T extends [] ? string : boolean; getRemoteIP(): string | undefined; headers( ...args: T ): T extends [] ? Headers$1 : string | undefined; cookies(n?: string): string | Record; query( ...args: T ): T extends [] ? Record : string | undefined; body( ...args: T ): T extends [] ? Record : unknown; _maybeParseBody(): Record; _parseBody(): Record; } type Events = { request: [Request, Response]; }; declare class App extends EventEmitter { private router; private routeRequest; route(pattern: string, handler: () => void): void; getRequestHandler(): (req: IncomingMessage, res: ServerResponse) => void; } declare function createApp(): App; type Headers = Record>; type Params = Record>; type Options = { path: string; params?: Params; headers?: Headers; method?: string; body?: string | Buffer | Params; data?: string | Buffer | Params; protocol?: string; enc?: 'utf8'; }; type Result = { statusCode: number; headers: Headers; body: string | Buffer; }; declare const request: (input: Options) => Result; declare const http_d_request: typeof request; declare namespace http_d { export { http_d_request as request }; } export { createApp, http_d as http };