import { type Conversation } from "./protocol.js"; import type { TerminalControlRef, TerminalRuntimeIdentity } from "./terminal-agent-adapter.js"; import { type TerminalAgentBridge } from "./terminal-agent-bridge.js"; type InteractionCliOptions = Record; interface LoadedInteractionTurn { readonly conversation: Conversation; readonly statePath: string; readonly logPath: string; } export interface TerminalInteractionCliDependencies { selection: { loadConversation(options: InteractionCliOptions): LoadedInteractionTurn; terminalControlFromTakeover(value: unknown): TerminalControlRef | undefined; }; authority: { runtimeIdentity(conversation: Conversation, terminalControl: TerminalControlRef): TerminalRuntimeIdentity; assertTurnBindingCurrent(conversation: Conversation, operation: string): void; assertManagedTerminalDispatchOwner(input: { storeDir: string; conversation: Readonly<{ conversation_id: string; }>; terminalControl: TerminalControlRef; action: string; }): void; sameTerminalIncarnation(left: TerminalControlRef, right: TerminalControlRef): boolean; }; terminal: { createBridge(options: InteractionCliOptions): TerminalAgentBridge; }; repository: { loadState(statePath: string): Conversation; saveState(statePath: string, conversation: Conversation): void; appendEvent(logPath: string, event: Record): void; storeDirForConversationDir(conversationDir: string): string; withLockedTurn(input: { storeDir: string; terminalControl: TerminalControlRef; statePath: string; logPath: string; operation(): Promise; }): Promise; }; monitor: { ensureAfterResponse(input: { conversation: Conversation; statePath: string; logPath: string; terminalControl: TerminalControlRef; options: InteractionCliOptions; reason: string; }): { monitorPid?: number; }; }; runtime: { now(): Date; printJson(value: Record): void; log(level: "info" | "warn" | "error", event: string, fields: Record): void; }; } export interface TerminalInteractionCliFacade { runRespondInteraction(options: InteractionCliOptions): Promise; } export declare function createTerminalInteractionCliAdapter(dependencies: TerminalInteractionCliDependencies): TerminalInteractionCliFacade; export {};