///
///
///
///
import type { IncomingMessage, OutgoingHttpHeader, OutgoingHttpHeaders, ServerResponse } from "http";
import { Socket } from "net";
import { Transform, TransformCallback, Writable } from "stream";
export interface StreamCreator {
writeHeaders(prelude: {
statusCode: number;
cookies: string[];
headers: Record;
}): Writable;
onWrite?: () => void;
onFinish: (length: number) => void;
}
export declare class OpenNextNodeResponse extends Transform implements ServerResponse {
private fixHeaders;
private streamCreator?;
private initialHeaders?;
statusCode: number;
statusMessage: string;
headers: OutgoingHttpHeaders;
private _cookies;
private responseStream?;
headersSent: boolean;
_chunks: Buffer[];
strictContentLength: boolean;
assignSocket(_socket: Socket): void;
detachSocket(_socket: Socket): void;
writeContinue(_callback?: (() => void) | undefined): void;
writeEarlyHints(_hints: Record, _callback?: (() => void) | undefined): void;
writeProcessing(): void;
/**
* This is a dummy request object to comply with the ServerResponse interface
* It will never be defined
*/
req: IncomingMessage;
chunkedEncoding: boolean;
shouldKeepAlive: boolean;
useChunkedEncodingByDefault: boolean;
sendDate: boolean;
connection: Socket | null;
socket: Socket | null;
setTimeout(_msecs: number, _callback?: (() => void) | undefined): this;
addTrailers(_headers: OutgoingHttpHeaders | readonly [string, string][]): void;
constructor(fixHeaders: (headers: OutgoingHttpHeaders) => void, onEnd: (headers: OutgoingHttpHeaders) => Promise, streamCreator?: StreamCreator | undefined, initialHeaders?: OutgoingHttpHeaders | undefined);
get originalResponse(): this;
get finished(): boolean;
setHeader(name: string, value: string | string[]): this;
removeHeader(name: string): this;
hasHeader(name: string): boolean;
getHeaders(): OutgoingHttpHeaders;
getHeader(name: string): OutgoingHttpHeader | undefined;
getHeaderNames(): string[];
flushHeaders(): void;
appendHeader(name: string, value: string | string[]): this;
writeHead(statusCode: number, statusMessage?: string | undefined, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[] | undefined): this;
writeHead(statusCode: number, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[] | undefined): this;
/**
* OpenNext specific method
*/
getFixedHeaders(): OutgoingHttpHeaders;
getBody(): Buffer;
private _internalWrite;
_transform(chunk: any, encoding: BufferEncoding, callback: TransformCallback): void;
_flush(callback: TransformCallback): void;
/**
* Next specific methods
* On earlier versions of next.js, those methods are mandatory to make everything work
*/
get sent(): boolean;
getHeaderValues(name: string): string[] | undefined;
send(): void;
body(value: string): this;
onClose(callback: () => void): void;
redirect(destination: string, statusCode: number): this;
}