export type ConversationTurnQueueStatus = "failed" | "queued" | "running"; export type ConversationTurnQueueItem = { error?: unknown; id: string; input: Input; status: ConversationTurnQueueStatus; }; export type ConversationTurnQueueSnapshot = { items: ReadonlyArray>; running: boolean; }; export type ConversationTurnQueueOptions = { execute: (input: Input, context: { id: string; signal: AbortSignal; }) => Promise; maxSize?: number; onError?: (error: unknown, item: ConversationTurnQueueItem) => void; }; export declare class ConversationTurnQueueFullError extends Error { constructor(maxSize: number); } /** * Serializes turns for one conversation. * * The queue is transport-agnostic: WebSocket chat, REST/SSE applications, and * durable adapters can all provide their own `execute` boundary. Failed turns * remain visible and stop the queue until the host retries or removes them, so * a later follow-up can never silently overtake a failed earlier message. */ export declare const createConversationTurnQueue: (options: ConversationTurnQueueOptions) => { cancel: (input?: { clearPending?: boolean; }) => void; enqueue: (input: Input, id?: string) => string; getSnapshot: () => ConversationTurnQueueSnapshot; remove: (id: string) => boolean; retry: (id: string) => boolean; subscribe: (listener: (snapshot: ConversationTurnQueueSnapshot) => void) => () => boolean; };