import type { TerminalNativeIdentityFence, TerminalRuntimeIdentity, TerminalThreadLifecycleAgentRow, TerminalThreadLifecycleCapabilities, TerminalThreadLifecycleCandidateToken, TerminalThreadLifecycleOperation, TerminalThreadLifecyclePlan } from "./terminal-agent-adapter.js"; import { TerminalAgentBridge, type ResolvedTerminalConversation, type TerminalBridgeStatus } from "./terminal-agent-bridge.js"; import { terminalNativeIdentityFence as nativeThreadIdentityFence, terminalNativeIdentityMatchesFence as nativeThreadIdentityMatchesFence, type TerminalNativeIdentity } from "./terminal-binding-authority.js"; import { type ManagedSessionState, type NativeThreadTransition } from "./managed-session.js"; import type { NativeThreadVerificationRequest } from "./native-thread-transition-settlement-service.js"; export { nativeThreadIdentityFence, nativeThreadIdentityMatchesFence }; export type NativeThreadVerificationAdapterPorts = Readonly<{ createBridge: () => TerminalAgentBridge; loadClaudeAgentRows: () => readonly TerminalThreadLifecycleAgentRow[]; runningVersion: () => string | undefined; runtimeForIdentity: (identity: TerminalNativeIdentity) => TerminalRuntimeIdentity; emptyRuntime: () => TerminalRuntimeIdentity; physicalRuntime: () => TerminalRuntimeIdentity; resolveIdentity: (preferredSessionId: string, allowedCompanionIdentity: TerminalNativeIdentityFence | undefined, allowedAdditionalIdentities: readonly TerminalNativeIdentityFence[]) => Promise; sleep: (milliseconds: number) => Promise; }>; export type NativeThreadVerificationPreparationRequest = Readonly<{ operation: TerminalThreadLifecycleOperation; expectedBindingToken: string; bindingTokens: readonly string[]; capabilities: TerminalThreadLifecycleCapabilities; beforeIdentity?: TerminalNativeIdentity; physicalBeforeIdentity?: TerminalNativeIdentity; allowedCompanionIdentity?: TerminalNativeIdentityFence; allowedAdditionalIdentities?: readonly TerminalNativeIdentityFence[]; }>; export type NativeThreadVerificationPreparationPorts = NativeThreadVerificationAdapterPorts & Readonly<{ plan: () => TerminalThreadLifecyclePlan | undefined; assertReady: (status: TerminalBridgeStatus) => void; revalidateSelectionSnapshot?: () => Promise; finalizeIdentity: (identity: TerminalNativeIdentity) => TerminalNativeIdentity; }>; export type PreparedNativeThreadVerification = Readonly<{ bridge: TerminalAgentBridge; plan: TerminalThreadLifecyclePlan; beforeIdentity: TerminalNativeIdentity; beforeRuntime: TerminalRuntimeIdentity; initialScreenDigest?: string; }>; export type NativeThreadCompanionSet = Readonly<{ primary?: TerminalNativeIdentityFence; additional: TerminalNativeIdentityFence[]; }>; export declare function nativeThreadRuntimeWithCompanionFences(runtime: TerminalRuntimeIdentity, companions: NativeThreadCompanionSet): TerminalRuntimeIdentity; export declare function probeCodexCurrentThread(request: Readonly<{ terminal: ResolvedTerminalConversation; currentIdentity?: TerminalNativeIdentity; runtimeIdentity?: TerminalNativeIdentity; runtimeOverride?: TerminalRuntimeIdentity; }>, ports: NativeThreadVerificationAdapterPorts): Promise; export declare function prepareNativeThreadVerification(request: NativeThreadVerificationPreparationRequest, terminal: ResolvedTerminalConversation, ports: NativeThreadVerificationPreparationPorts): Promise; export declare function nativeThreadCandidateFileIdentity(token: TerminalThreadLifecycleCandidateToken | undefined): NativeThreadTransition["target_candidate_file_identity"]; export declare function assertResumedNativeThreadMatchesCandidate(identity: TerminalNativeIdentity, expected: NativeThreadTransition["target_candidate_file_identity"]): void; export declare function knownNativeThreadCompanionSet(input: Readonly<{ terminal: Pick; transition: NativeThreadTransition; managedSessions: readonly ManagedSessionState[]; }>, ports: Readonly<{ terminalAliasMatches: (storedTerminalId: unknown, storedControl: unknown, currentTerminalId: unknown, currentControl: unknown) => boolean; workspaceMatches: (left: unknown, right: unknown) => boolean; }>): NativeThreadCompanionSet; export declare function verifyNativeThreadTransition(request: NativeThreadVerificationRequest, terminal: ResolvedTerminalConversation, ports: NativeThreadVerificationAdapterPorts): Promise;