import { type Conversation } from "./protocol.js"; import type { TerminalControlRef } from "./terminal-agent-adapter.js"; import type { TerminalOrdinaryDispatchStatus } from "./terminal-dispatch-ledger-codec.js"; import { terminalBridgeSubmission, type TerminalSubmissionAcceptanceEvidence } from "./terminal-submission-facts.js"; import { type UnknownRecord } from "./value-guards.js"; export interface TerminalBridgeStateInput { conversation: Conversation; message: { id: string; }; requestText: string; startedAt: string; agentTimeoutMinutes: number; agentHardTimeoutMinutes: number; monitorLockVersion: number; preSendScreenFingerprint?: string; codexRolloutAcceptanceAnchor?: unknown; codexDetachedCandidateSessionClaims?: unknown; claudeTranscriptAnchor?: unknown; claudeHome?: string; } export interface TerminalBridgeSubmissionMutation { conversation: Conversation; messageId: string; messageType?: "task" | "answer"; messageBody?: string; requestText: string; status: TerminalOrdinaryDispatchStatus; preparedAt: string; textInjectedAt?: string; enterDispatchedAt?: string; /** Structured bridge proof that no Enter key call began for this generation. */ enterNotAttemptedAt?: string; enterNotAttemptedReason?: "pre_key_failure"; agentAcceptedAt?: string; notAcceptedAt?: string; submittedAt?: string; uncertainAt?: string; abortedAt?: string; error?: string; acceptanceEvidence?: TerminalSubmissionAcceptanceEvidence; lastProvenStage?: "prepared" | "text_injected" | "enter_dispatched" | "agent_accepted"; safeToRetry?: boolean; } export interface TerminalBridgeSubmissionContext { dispatcherPid: number; storeDir?: string; terminalControl?: TerminalControlRef; } export declare function withTerminalBridgeState({ conversation, message, requestText, startedAt, agentTimeoutMinutes, agentHardTimeoutMinutes, monitorLockVersion, preSendScreenFingerprint, codexRolloutAcceptanceAnchor, codexDetachedCandidateSessionClaims, claudeTranscriptAnchor, claudeHome }: TerminalBridgeStateInput): Conversation; export declare function applyTerminalBridgeSubmission(mutation: TerminalBridgeSubmissionMutation, context: TerminalBridgeSubmissionContext): Conversation; export declare function terminalAcceptanceEvidenceForConversation(conversation: Conversation, requestText: string, evidence: unknown): TerminalSubmissionAcceptanceEvidence; export declare function terminalAcceptanceEvidenceExpectation(conversation: Conversation, requestText: string): { source: TerminalSubmissionAcceptanceEvidence["source"]; nativeThreadId: string; requestHash: string; }; export declare function terminalSubmissionReplayReceipt(options: { proofLevel: "submitted" | "enter_dispatched" | "agent_accepted"; evidence?: unknown; expected: { source: TerminalSubmissionAcceptanceEvidence["source"]; nativeThreadId: string; requestHash: string; }; }): { replayed: true; delivered: boolean; status: "async_pending" | "submission_pending_acceptance" | "submission_uncertain"; submission_outcome: "agent_accepted" | "pending_acceptance" | "uncertain"; delivery_receipt: "agent_accepted" | "enter_dispatched" | "submitted"; do_not_retry?: true; evidence_error?: string; }; export declare function terminalBridgeRequestFingerprint(value: unknown): string | undefined; export declare function terminalDispatchTextSummary(text: unknown, maxLength?: number): { length: number; preview?: string; }; export declare function terminalBridgeEnabled(conversation: unknown): boolean; export { terminalBridgeSubmission }; export declare function terminalBridgeSubmissionReceipts(conversation: Conversation): UnknownRecord[]; export declare function terminalSubmissionIndicatesInputDispatched(submission: unknown): boolean; /** Return only durable per-Turn dispatch facts; Close prose is not evidence. */ export declare function terminalInputDispatchedForConversation(conversation: Conversation): boolean; export declare function unresolvedTerminalBridgeSubmission(conversation: Conversation): UnknownRecord | undefined;