///
import { ServerResponse, OutgoingHttpHeaders, IncomingMessage } from 'http';
import { Stream } from 'stream';
import contentDisposition from 'content-disposition';
import { WebApplication } from './WebApplication';
import { WebContext } from './WebContext';
export declare type ResponseBody = null | string | Buffer | Stream | object;
export declare class WebResponse {
readonly res: ServerResponse;
protected readonly app: WebApplication;
req?: IncomingMessage;
ctx?: WebContext;
protected explicitStatus: boolean;
protected explicitNullBody: boolean;
protected _body: ResponseBody;
constructor(app: WebApplication, res: ServerResponse);
get socket(): import("net").Socket;
getHeaders(): Required;
setHeaders(fields: OutgoingHttpHeaders): void;
get statusCode(): number;
set statusCode(code: number);
get statusMessage(): string;
set statusMessage(msg: string);
get body(): ResponseBody;
set body(val: ResponseBody);
get contentLength(): number;
set contentLength(length: number);
get headersSent(): boolean;
vary(field: string | string[]): void;
redirect(url: string, alt: string): void;
attachment(filename: string, options: contentDisposition.Options): void;
set contentType(type: string);
get contentType(): string;
set lastModified(val: Date | undefined);
get lastModified(): Date | undefined;
set etag(val: string);
get etag(): string;
is(type: string, ...types: string[]): string | false;
getHeader(field: string): string | number | string[];
hasHeader(field: string): boolean;
setHeader(field: string, value: string | number | string[]): void;
setHeader(fields: Record): void;
appendHeader(field: string, value: string | string[]): void;
removeHeader(field: string): void;
get writable(): boolean;
protected inspect(): Record | undefined;
protected toJSON(): Record;
flushHeaders(): void;
}