import type { ExecutorKind } from "./executors.js"; import { type TerminalUserExplicitSendEligibility } from "./terminal-user-explicit-send-policy.js"; import type { TerminalControlRef } from "./terminal-control-ref.js"; import type { TerminalListTerminalFacts } from "./terminal-list-facts.js"; import { type ModelControlActionPolicyDecision, type ModelControlActionPolicyFacts } from "./terminal-model-control-action-policy.js"; export interface TerminalListActionSubject { readonly exactTerminalRow: boolean; readonly processState: string; readonly terminalControl: TerminalControlRef; readonly agent: ExecutorKind; readonly pid: number; } export interface TerminalListCommandDecisions { readonly send: boolean; readonly approve: boolean; readonly status: true; readonly cancel: boolean; readonly close: boolean; readonly new_thread: boolean; readonly list_resumable_threads: boolean; readonly native_inspect: boolean; readonly identify_foreground: boolean; readonly identify_and_send: boolean; readonly watch: boolean; } export interface TerminalListActionDecisions { readonly commands: TerminalListCommandDecisions; readonly terminalUserExplicitSend: TerminalUserExplicitSendEligibility; readonly modelControl: ModelControlActionPolicyDecision; } /** * Convert one immutable observation into semantic action decisions. This layer * performs no Store reads, terminal capture, private-token generation, or JSON * presentation. Mutation execution still re-observes under its terminal lock. */ export declare function decideTerminalListActions(input: { readonly subject: TerminalListActionSubject; readonly facts: TerminalListTerminalFacts; }): TerminalListActionDecisions; export declare function modelControlPolicyFacts(input: { readonly subject: TerminalListActionSubject; readonly facts: TerminalListTerminalFacts; }): ModelControlActionPolicyFacts;