import type { RalphLoopConfig } from "../../config";
export interface RalphLoopState {
    active: boolean;
    iteration: number;
    max_iterations?: number;
    message_count_at_start?: number;
    completion_promise: string;
    initial_completion_promise?: string;
    verification_attempt_id?: string;
    verification_session_id?: string;
    started_at: string;
    prompt: string;
    session_id?: string;
    ultrawork?: boolean;
    verification_pending?: boolean;
    strategy?: "reset" | "continue";
}
export interface IterationCommitExpectation {
    iteration: number;
    sessionID: string;
}
export interface RalphLoopOptions {
    config?: RalphLoopConfig;
    getTranscriptPath?: (sessionId: string) => string;
    apiTimeout?: number;
    idleSettleMs?: number;
    checkSessionExists?: (sessionId: string) => Promise<boolean>;
    backgroundManager?: {
        getTasksByParentSession: (sessionId: string) => Array<{
            status: string;
        }>;
    };
}
