import type { SessionInputStatus } from '../storage/sqlite/session-input-repository.js'; type InputState = { status: SessionInputStatus; error?: string; }; export declare function selectTaskMainUpdateAttempt(conversationId: string, baseClientMessageId: string, findInput: (conversationId: string, clientMessageId: string) => InputState | undefined): { kind: 'completed' | 'accepted' | 'new' | 'exhausted'; clientMessageId?: string; }; /** Reuses an accepted input across restarts and gives failed attempts a fresh idempotency key. */ export declare function submitAndConfirmTaskMainUpdate(input: { conversationId: string; clientMessageId: string; content: string; }, deps: { findInput: (conversationId: string, clientMessageId: string) => InputState | undefined; submit: (message: typeof input) => Promise; waitForCompletion: (conversationId: string, clientMessageId: string) => Promise; }): Promise; export {};