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 createFinalizableDraftStreamControls(params: { throttleMs: number; isStopped: () => boolean; isFinal: () => boolean; markStopped: () => void; markFinal: () => void; sendOrEditStreamMessage: (text: string) => Promise; }): { loop: import("./draft-stream-loop.js").DraftStreamLoop; update: (text: string) => void; stop: () => Promise; seal: () => Promise; discardPending: () => Promise; stopForClear: () => Promise; }; export declare function createFinalizableDraftStreamControlsForState(params: { throttleMs: number; state: FinalizableDraftStreamState; sendOrEditStreamMessage: (text: string) => Promise; }): { loop: import("./draft-stream-loop.js").DraftStreamLoop; update: (text: string) => void; stop: () => Promise; seal: () => Promise; discardPending: () => Promise; stopForClear: () => Promise; }; export declare function takeMessageIdAfterStop(params: StopAndClearMessageIdParams): Promise; export declare function clearFinalizableDraftMessage(params: ClearFinalizableDraftMessageParams): Promise; export declare function createFinalizableDraftLifecycle(params: FinalizableDraftLifecycleParams): { loop: import("./draft-stream-loop.js").DraftStreamLoop; update: (text: string) => void; stop: () => Promise; seal: () => Promise; discardPending: () => Promise; stopForClear: () => Promise; clear: () => Promise; }; export {};