import type { Conversation } from "./protocol.js"; import type { TerminalControlRef, TerminalRuntimeIdentity } from "./terminal-agent-adapter.js"; import type { TerminalBridgeStatus } from "./terminal-agent-bridge.js"; import { type CodexPreMaterializationIdentity } from "./terminal-authority-policy.js"; import type { TerminalNativeIdentity as NativeAgentSessionIdentity } from "./terminal-binding-authority.js"; import type { TerminalControlSendRequest, TerminalDispatchTerminal } from "./terminal-dispatch-composition.js"; import type { TerminalDispatchExecutionService } from "./terminal-dispatch-execution.js"; export interface TerminalSendPreflightPorts { assertSafeTerminalSend(agent: TerminalControlSendRequest["executor"]["kind"], status: TerminalBridgeStatus): void; terminalRuntimeForLiveIdentity(request: { terminal: TerminalDispatchTerminal; identity?: NativeAgentSessionIdentity; expectedEmptyNativeSession?: boolean; physicalOnly?: boolean; }): TerminalRuntimeIdentity; terminalRuntimeIdentityForConversation(conversation: Conversation, terminalControl: TerminalControlRef): TerminalRuntimeIdentity; } /** * Shared physical-input safety check for the human-priority Send path. * Human intent may relax lifecycle attribution, never approval/questionnaire * exclusion or terminal reachability. */ export declare function assertSafeUserExplicitTerminalSend(status: TerminalBridgeStatus | undefined): void; export declare function terminalSendCandidateAcceptanceAnchor(request: TerminalControlSendRequest): import("./terminal-submission-facts.js").CodexCandidateSetRolloutAcceptanceAnchor | undefined; export declare function assertTerminalNativeBindingBeforeSend(input: { execution: TerminalDispatchExecutionService; conversation: Conversation; currentNativeIdentity?: NativeAgentSessionIdentity; needsPostSendNativeBinding: boolean; allowedPreMaterializationIdentity?: CodexPreMaterializationIdentity; }): void; /** Build the single immutable runtime identity used by pre-send observation. */ export declare function terminalPreSendRuntime(input: { request: TerminalControlSendRequest; terminalControl: TerminalControlRef; terminalAgentPid: number; }, ports: Pick): TerminalRuntimeIdentity; export declare function assertTerminalPreSendStatus(input: { request: TerminalControlSendRequest; status: TerminalBridgeStatus; }, ports: Pick): void;