import { Writable } from "stream"; import type { WritableOptions } from "stream"; interface IResponseStream { cork: Writable["cork"]; /** * Do not use. This may lead to unexcepted result in AWS Lambda Runtime. * @deprecated */ destroy: Writable["destroy"]; end: Writable["end"]; uncork: Writable["uncork"]; write: Writable["write"]; addListener: Writable["addListener"]; emit: Writable["emit"]; eventNames: Writable["eventNames"]; getMaxListeners: Writable["getMaxListeners"]; listenerCount: Writable["listenerCount"]; listeners: Writable["listeners"]; off: Writable["off"]; on: Writable["on"]; once: Writable["once"]; prependListener: Writable["prependListener"]; prependOnceListener: Writable["prependOnceListener"]; rawListeners: Writable["rawListeners"]; removeAllListeners: Writable["removeAllListeners"]; removeListener: Writable["removeListener"]; setMaxListeners: Writable["setMaxListeners"]; /** * @param {any} contentType must be a string or implement toString() * @throws Error */ setContentType: (contentType: any) => void; writable: boolean; readonly writableEnded: boolean; readonly writableFinished: boolean; readonly writableHighWaterMark: number; readonly writableLength: number; readonly writableObjectMode: boolean; readonly writableNeedDrain: boolean; readonly writableCorked: number; destroyed: boolean; /** * used by AWS inside HttpResponseStream.from function * @internal */ _onBeforeFirstWrite?: (write: Writable["write"]) => any; } interface IStreamableHandlerContext { callbackwaitsforemptyeventloop: boolean; functionVersion: string; functionName: string; memoryLimitInMB: string; logGroupName: string; logStreamName: string; clientContext: any; identity: any; invokedFunctionArn: string; awsRequestId: string; getRemainingTimeInMillis: () => number; } export type StreamableHandler = (event: any, responseStream: IResponseStream, context?: IStreamableHandlerContext) => Promise; interface IMetadata { statusCode?: number; headers?: { [key: string]: string; }; cookies?: string[]; body?: string | Buffer; isBase64Encoded?: boolean; } export declare class ResponseStream extends Writable { #private; _onBeforeFirstWrite?: (write: Writable["write"]) => any; constructor(opts: Partial); setContentType: (contentType: any) => void; } export interface IHttpResponseStream { /** * @param {any} metadata http proxy integration response object. * * This could also be 'any' byte to be written before all write.() executions. * * Metadata will be wrapped into JSON.stringify(). * * `{statusCode: 404, cookies: ["hello=world"]}` * * * @throws Error */ from: (responseStream: IResponseStream, metadata: IMetadata) => IResponseStream; } export declare class HttpResponseStream { static from: (responseStream: IResponseStream, metadata: IMetadata) => IResponseStream; } export {};