/** * Finalizable draft lifecycle helpers for draft streaming. */ import { type DraftStreamLoop } from './draft-stream-loop.js'; export type FinalizableDraftStreamState = { stopped: boolean; final: boolean; }; type StopAndClearMessageIdParams = { stopForClear: () => Promise; readMessageId: () => T | undefined; clearMessageId: () => void; }; type ClearFinalizableDraftMessageParams = StopAndClearMessageIdParams & { isValidMessageId: (value: unknown) => value is T; deleteMessage: (messageId: T) => Promise; onDeleteSuccess?: (messageId: T) => void; warn?: (message: string) => void; warnPrefix: string; }; type FinalizableDraftLifecycleParams = Omit, 'stopForClear'> & { throttleMs: number; state: FinalizableDraftStreamState; sendOrEditStreamMessage: (text: string) => Promise; }; export declare function createFinalizableDraftStreamControlsForState(params: { throttleMs: number; state: FinalizableDraftStreamState; sendOrEditStreamMessage: (text: string) => Promise; }): { loop: DraftStreamLoop; update: (text: string) => void; stop: () => Promise; stopForClear: () => Promise; }; export declare function clearFinalizableDraftMessage(params: ClearFinalizableDraftMessageParams): Promise; export declare function createFinalizableDraftLifecycle(params: FinalizableDraftLifecycleParams): { clear: () => Promise; loop: DraftStreamLoop; update: (text: string) => void; stop: () => Promise; stopForClear: () => Promise; }; export {};