import type { VextResponseKind } from "../types/hooks.js"; import type { VextResponse } from "../types/response.js"; import type { VextHeaders } from "../types/headers.js"; export interface ResponseSendState { kind: VextResponseKind; data?: unknown; status: number; headers: VextHeaders; requestId: string; startedAt: number; } type EventEmitterLike = { once?: (event: string, listener: (...args: unknown[]) => void) => unknown; off?: (event: string, listener: (...args: unknown[]) => void) => unknown; removeListener?: (event: string, listener: (...args: unknown[]) => void) => unknown; destroy?: (error?: Error) => unknown; destroyed?: boolean; writableEnded?: boolean; headersSent?: boolean; statusCode?: number; setHeader?: (name: string, value: number | string) => unknown; end?: (chunk?: string) => unknown; readableEnded?: boolean; }; export declare function beginResponseSend(res: VextResponse, payload: { kind: VextResponseKind; data?: unknown; status: number; headers: VextHeaders; wrapped: boolean; requestId: string; }): ResponseSendState; export declare function finishResponseSend(res: VextResponse, state: ResponseSendState): void; export declare function finishResponseSendAfterStreamSettlement(res: VextResponse, state: ResponseSendState, readable: NodeJS.ReadableStream, target?: EventEmitterLike): void; export declare function waitForResponseSend(res: VextResponse): Promise; export {};