import type { FileLockAcquisitionOptions } from "./file-lock-cli-adapter.js"; import type { TerminalNativeControlCliOptions as NativeLifecycleCliOptions, TerminalNativeControlCliBoundary } from "./terminal-native-control-cli-contract.js"; import type { ResolvedTerminalConversation } from "./terminal-agent-bridge.js"; import type { TerminalControlRef, TerminalRuntimeIdentity } from "./terminal-agent-adapter.js"; import type { TerminalRuntimeCliAdapter } from "./terminal-runtime-cli-adapter.js"; export interface TerminalPermissionControlCliPorts { readonly runtime: { forOptions(options: NativeLifecycleCliOptions): TerminalRuntimeCliAdapter; physicalProcessIncarnation(pid: number): { processUuid: string; processBirth: string; }; physicalRuntime(terminal: ResolvedTerminalConversation): TerminalRuntimeIdentity; }; readonly lifecycle: TerminalNativeControlCliBoundary; readonly state: { storeDir(options: NativeLifecycleCliOptions): string; inspectStore(storeDir: string): { writable: boolean; }; acquireTerminal(storeDir: string, terminalControl: TerminalControlRef, options?: FileLockAcquisitionOptions): () => void; }; readonly output: { print(value: unknown): void; }; } /** Closed native permission operations; no task, Session, or Watch is created. */ export declare function createTerminalPermissionControlCliAdapter(ports: TerminalPermissionControlCliPorts): { runPermissionOptions(options: NativeLifecycleCliOptions): Promise; runSetPermissions(options: NativeLifecycleCliOptions): Promise; };