import 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 { TerminalAgentAdapter, TerminalRuntimeIdentity } from "./terminal-agent-adapter.js"; import { type ResolvedTerminalConversation, type TerminalAgentBridge, type TerminalBridgeStatus } from "./terminal-agent-bridge.js"; /** Model operations consume the shared physical/identity boundary without owning Status. */ export interface TerminalModelControlCliPorts { runtime: CreateNativeThreadLifecycleCliAdapterInput["runtime"]; identity: Pick; state: Pick; output: CreateNativeThreadLifecycleCliAdapterInput["output"]; lifecycle: TerminalNativeControlCliBoundary & { currentSnapshot(options: NativeLifecycleCliOptions, terminal: ResolvedTerminalConversation): Promise; agentAdapter(options: NativeLifecycleCliOptions, agent: ExecutorKind): TerminalAgentAdapter; assertExclusive(input: NativeThreadOwnershipRequest): Promise; inspectionRuntime(terminal: ResolvedTerminalConversation, snapshot: NativeLifecycleSnapshot): TerminalRuntimeIdentity; assertInspectionAgentIdentity(input: { options: NativeLifecycleCliOptions; terminal: ResolvedTerminalConversation; snapshot: NativeLifecycleSnapshot; stage: string; expectedClaudeState?: "idle" | "status_dialog"; }): void; observeInitialInspectionReady(options: NativeLifecycleCliOptions, terminal: ResolvedTerminalConversation, snapshot: NativeLifecycleSnapshot, bridge: TerminalAgentBridge): Promise<{ runtime: TerminalRuntimeIdentity; status: TerminalBridgeStatus; }>; }; } export declare function createTerminalModelControlCliAdapter(ports: TerminalModelControlCliPorts): Readonly<{ runModelOptions: (options: NativeLifecycleCliOptions) => Promise; runSetModel: (options: NativeLifecycleCliOptions) => Promise; runRepairModelControl: (options: NativeLifecycleCliOptions) => Promise; }>;