import type { Executor } from "./protocol.js"; import type { TerminalAgentAdapterRegistry, TerminalControlRef } from "./terminal-agent-adapter.js"; import type { TerminalBridgeStatus } from "./terminal-agent-bridge.js"; import type { CodexForegroundIdentificationProof } from "./native-thread-lifecycle-cli-adapter.js"; export interface CodexForegroundProofPorts { createRegistry(options: Record): TerminalAgentAdapterRegistry; nowMs(): number; processIncarnationForPid(pid: number): { processUuid: string; processBirth: string; evidence: "process_birth"; }; } export interface CodexForegroundProofAssertion { options: Record; executor: Executor; terminalControl: TerminalControlRef; terminalAgentPid: number; status: TerminalBridgeStatus; } export interface CodexForegroundProofAuthority { clear(options: object): void; current(options: object): CodexForegroundIdentificationProof | undefined; remember(options: object, proof: CodexForegroundIdentificationProof): void; assertCurrent(input: CodexForegroundProofAssertion): void; } /** * Own the in-process, object-identity-bound /status proof used by atomic * identify-and-send. The proof is never parsed from CLI arguments or persisted * as Session authority. */ export declare function createCodexForegroundProofAuthority(ports: CodexForegroundProofPorts): CodexForegroundProofAuthority;