import type { CodexOpenRootRolloutInventory } from "./agent-session-provider.js"; import type { DeferredForegroundApplicationScope, DeferredForegroundBindingBoundary, DeferredForegroundTerminalFacts } from "./deferred-foreground-boundary.js"; import type { DeferredForegroundTransfer } from "./deferred-foreground-transfer.js"; import type { DeferredForegroundFreshAuthority } from "./deferred-foreground-preparation-service.js"; import { type ManagedSessionState } from "./managed-session.js"; import type { DeferredCodexForegroundBindingBoundary, TerminalDispatchTerminal } from "./terminal-dispatch-composition.js"; interface NativeIdentityObservation { status: "resolved" | "verified_absent" | "unavailable"; identity?: { sessionId: string; }; reason?: string; } interface NormalizedTerminalStatus { reachable: boolean; approvalBlocked: boolean; activityState: string; activityReason: string; } export declare function projectDeferredForegroundTerminalFacts(terminal: TerminalDispatchTerminal): DeferredForegroundTerminalFacts; export declare function deferredForegroundTransferMatchesTerminal(transfer: DeferredForegroundTransfer, terminal: TerminalDispatchTerminal): boolean; export declare function deferredForegroundBoundaryProjection(boundary: DeferredCodexForegroundBindingBoundary): DeferredForegroundBindingBoundary; export declare function deferredForegroundConcreteBoundary(boundary: DeferredForegroundBindingBoundary, terminal: TerminalDispatchTerminal): DeferredCodexForegroundBindingBoundary; export interface DeferredForegroundBoundaryAdapterPorts { processIncarnation(pid: number): { processUuid: string; processBirth: string; }; inventory(boundary: DeferredCodexForegroundBindingBoundary): Promise; nativeIdentity(boundary: DeferredCodexForegroundBindingBoundary): Promise; authority(input: { boundary: DeferredCodexForegroundBindingBoundary; sourceAsBound: ManagedSessionState; candidateInventory?: CodexOpenRootRolloutInventory; expectedSourceStatus: "bound" | "transitioning"; }): DeferredForegroundFreshAuthority | undefined; assertNoDispatch(scope: DeferredForegroundApplicationScope, boundary: DeferredCodexForegroundBindingBoundary): void; dispatchSnapshot(boundary: DeferredCodexForegroundBindingBoundary): DeferredCodexForegroundBindingBoundary["previousDispatchSnapshot"]; status(boundary: DeferredCodexForegroundBindingBoundary): Promise; assertComposerReady(boundary: DeferredCodexForegroundBindingBoundary): Promise; valuesMatch(left: unknown, right: unknown): boolean; } export declare function assertDeferredForegroundBoundary(input: { scope: DeferredForegroundApplicationScope; storeDir: string; boundary: DeferredCodexForegroundBindingBoundary; applicationBoundary: DeferredForegroundBindingBoundary; expectedSourceStatus: "bound" | "transitioning"; requireNoDispatch: boolean; requireEmptyComposer: boolean; ports: DeferredForegroundBoundaryAdapterPorts; }): Promise; export {};