///
import type { Handler, HandlerEvent, HandlerContext, StreamingHandler, StreamingResponse } from '../function/index.js';
declare global {
namespace awslambda {
function streamifyResponse(handler: (event: HandlerEvent, responseStream: NodeJS.WritableStream, context: HandlerContext) => Promise): Handler;
namespace HttpResponseStream {
function from(stream: NodeJS.WritableStream, metadata: Omit): NodeJS.WritableStream;
}
}
}
/**
* Enables streaming responses. `body` accepts a Node.js `Readable` stream or a WHATWG `ReadableStream`.
*
* @example
* ```
* const { Readable } = require('stream');
*
* export const handler = stream(async (event, context) => {
* const stream = Readable.from(Buffer.from(JSON.stringify(event)))
* return {
* statusCode: 200,
* body: stream,
* }
* })
* ```
*
* @example
* ```
* export const handler = stream(async (event, context) => {
* const response = await fetch('https://api.openai.com/', { ... })
* // ...
* return {
* statusCode: 200,
* body: response.body, // Web stream
* }
* })
* ```
*
* @param handler
* @see https://ntl.fyi/streaming-func
*/
declare const stream: (handler: StreamingHandler) => Handler;
export { stream };