import type { ExecutorKind } from "./executors.js"; import { type TerminalModelControlBehaviorProfile } from "./terminal-model-control-profile.js"; import { type TerminalControlRef } from "./terminal-control-ref.js"; export interface TerminalModelControlSubjectInput { readonly terminalId?: string; readonly terminalControl?: TerminalControlRef; readonly agent?: ExecutorKind; readonly pid?: number; readonly workspace?: string; readonly processUuid?: string; readonly processBirth?: string; readonly agentVersion?: string; readonly behaviorProfile?: string; } /** Canonical physical and profile identity shared by projection and mutation. */ export interface CanonicalTerminalModelControlSubject { readonly terminalId: string; readonly terminalControl: TerminalControlRef; readonly terminalEndpointIdentity: string; readonly terminalProcessAnchorPid: number; readonly agent: ExecutorKind; readonly pid: number; readonly workspace: string; readonly processUuid: string; readonly processBirth: string; readonly agentVersion: string; readonly behaviorProfile: TerminalModelControlBehaviorProfile; } /** * Normalize one model-control subject without granting an action. Invalid or * unsupported facts return undefined so read-only projection remains closed; * mutation callers may turn that result into an action-specific error. */ export declare function canonicalModelControlSubject(input: TerminalModelControlSubjectInput): CanonicalTerminalModelControlSubject | undefined;