import { type TerminalCompletionEvidence } from "./terminal-agent-adapter.js"; import { type CodexRolloutAcceptanceAnchor, type CodexRolloutAcceptanceIdentity, type TerminalSubmissionAcceptanceEvidence } from "./terminal-submission-facts.js"; export type CodexBoundRolloutCompletionCode = "completion_found" | "abort_found" | "exact_turn_not_complete" | "partial_rollout_record" | "rollout_changed_during_scan" | "invalid_anchor" | "invalid_acceptance_evidence" | "acceptance_anchor_mismatch" | "acceptance_turn_mismatch" | "binding_identity_mismatch" | "rollout_identity_mismatch" | "rollout_unreadable" | "rollout_truncated" | "scan_limit_exceeded" | "invalid_rollout_jsonl" | "duplicate_exact_completion" | "duplicate_exact_abort" | "conflicting_exact_settlement" | "later_turn_started" | "invalid_exact_completion" | "invalid_exact_abort"; export interface CodexBoundRolloutCompletionDiagnostics { detector: "codex_exact_bound_rollout"; code: CodexBoundRolloutCompletionCode; native_thread_id?: string; acceptance_id?: string; anchor_fingerprint?: string; rollout_identity_fingerprint?: string; scan_start_offset_bytes?: number; observed_end_offset_bytes?: number; scanned_records?: number; observed_task_complete_records?: number; observed_turn_aborted_records?: number; detail?: string; } export type CodexBoundRolloutCompletionResult = { status: "completed"; completion: TerminalCompletionEvidence; diagnostics: CodexBoundRolloutCompletionDiagnostics; } | { status: "pending"; diagnostics: CodexBoundRolloutCompletionDiagnostics; } | { status: "failure"; diagnostics: CodexBoundRolloutCompletionDiagnostics; }; interface CompletionRequest { anchor: CodexRolloutAcceptanceAnchor; acceptanceEvidence: TerminalSubmissionAcceptanceEvidence; currentIdentity: CodexRolloutAcceptanceIdentity; requestHash: string; } /** * Scans the exact rollout and native turn proven by terminal acceptance. * * Unlike the general Codex context loader, this detector does not retain only * a recent-turn window. It starts at the immutable pre-submission byte anchor * and matches only the persisted acceptance UUID, so a delayed monitor can * recover completion even after later native turns have been appended. */ export declare function detectCodexBoundRolloutCompletion(options: CompletionRequest): CodexBoundRolloutCompletionResult; export {};