import type { ReplyPayload } from "../types.js"; import type { BlockStreamingCoalescing } from "./block-streaming.js"; export type BlockReplyPipeline = { enqueue: (payload: ReplyPayload) => void; flush: (options?: { force?: boolean; }) => Promise; stop: () => void; hasBuffered: () => boolean; didStream: () => boolean; isAborted: () => boolean; hasSentPayload: (payload: ReplyPayload) => boolean; getSentMediaUrls: () => readonly string[]; }; export type BlockReplyBuffer = { shouldBuffer: (payload: ReplyPayload) => boolean; onEnqueue?: (payload: ReplyPayload) => void; finalize?: (payload: ReplyPayload) => ReplyPayload; }; export declare function createAudioAsVoiceBuffer(params: { isAudioPayload: (payload: ReplyPayload) => boolean; }): BlockReplyBuffer; export declare function createBlockReplyPayloadKey(payload: ReplyPayload): string; export declare function createBlockReplyContentKey(payload: ReplyPayload): string; export declare function createBlockReplyPipeline(params: { onBlockReply: (payload: ReplyPayload, options?: { abortSignal?: AbortSignal; timeoutMs?: number; }) => Promise | void; timeoutMs: number; coalescing?: BlockStreamingCoalescing; buffer?: BlockReplyBuffer; }): BlockReplyPipeline;