import type { NativeLifecycleCliOptions, NativeLifecycleSnapshot, NativeThreadOwnershipRequest, CreateNativeThreadLifecycleCliAdapterInput } from "./native-thread-lifecycle-cli-contract.js"; export type { NativeLifecycleCliOptions, NativeLifecycleSnapshot, NativeThreadOwnershipRequest, CreateNativeThreadLifecycleCliAdapterInput } from "./native-thread-lifecycle-cli-contract.js"; import type { TerminalNativeControlCliBoundary } from "./terminal-native-control-cli-contract.js"; import type { ExecutorKind } from "./executors.js"; import { type ManagedSessionState } from "./managed-session.js"; import { type LifecycleTerminalObservation, type NativeThreadLifecycleQueryPorts } from "./native-thread-lifecycle-query-service.js"; import type { TerminalAgentAdapter } from "./terminal-agent-adapter.js"; import { type ResolvedTerminalConversation, type TerminalAgentBridge } from "./terminal-agent-bridge.js"; import type { TerminalNativeIdentity } from "./terminal-binding-authority.js"; export declare const CODEX_FOREGROUND_IDENTIFICATION_TTL_MS = 30000; export declare const CODEX_FOREGROUND_IDENTIFICATION_SCROLLBACK_LINES = 240; /** * Short-lived diagnostic evidence returned only to the in-process caller. * * This is deliberately not a Store binding or an authorization token. The * caller must remain inside the same terminal lock and must still use the * ordinary request-acceptance path before creating durable Session authority. */ export interface CodexForegroundIdentificationProof { readonly terminalId: string; readonly pid: number; readonly processUuid: string; readonly processBirth: string; readonly realCwd: string; readonly nativeThreadId: string; readonly agentVersion: string; readonly behaviorProfile: string; readonly evidenceFingerprint: string; readonly postProbeScreenDigest: string; readonly observationScrollbackLines: typeof CODEX_FOREGROUND_IDENTIFICATION_SCROLLBACK_LINES; readonly observedAt: string; readonly expiresAt: string; readonly terminalSubmission: { readonly command: "/status"; readonly enterCount: 1; readonly materialization: NativeInspectionSubmission["materialization"]; }; } export interface NativeThreadLifecycleCliFacade extends TerminalNativeControlCliBoundary { queryPorts(options: NativeLifecycleCliOptions): NativeThreadLifecycleQueryPorts; assertExclusive(input: NativeThreadOwnershipRequest): Promise; currentSnapshot(options: NativeLifecycleCliOptions, terminal: ResolvedTerminalConversation, settings?: { materialize?: boolean; }): Promise; lifecycleBindingTokens(input: { session?: ManagedSessionState; terminal: ResolvedTerminalConversation; identity?: TerminalNativeIdentity; }): readonly string[]; agentAdapter(options: NativeLifecycleCliOptions, agent: ExecutorKind): TerminalAgentAdapter; runList(options: NativeLifecycleCliOptions): Promise; runInspect(options: NativeLifecycleCliOptions): Promise; runPermissionOptions(options: NativeLifecycleCliOptions): Promise; runSetPermissions(options: NativeLifecycleCliOptions): Promise; runModelOptions(options: NativeLifecycleCliOptions): Promise; runSetModel(options: NativeLifecycleCliOptions): Promise; runRepairModelControl(options: NativeLifecycleCliOptions): Promise; runIdentifyForeground(options: NativeLifecycleCliOptions): Promise; identifyCodexForegroundWhileLocked(input: { options: NativeLifecycleCliOptions; terminal: LifecycleTerminalObservation; expectedTerminalToken: string; }): Promise; codexLatentClearResumeObservation(input: { screen?: string; agentVersion?: string; }): { sourceNativeThreadId: string; fingerprint: string; } | undefined; nativeInspectionComposerEmpty(agent: ExecutorKind, screen?: string): boolean; } export declare function createNativeThreadLifecycleCliAdapter(ports: CreateNativeThreadLifecycleCliAdapterInput): NativeThreadLifecycleCliFacade; type NativeInspectionSubmission = Awaited>;