import type { Session } from '../types.js'; type ProtectedSessionMutationState = Pick; type ProtectedRuntimeMutationState = { session: ProtectedSessionMutationState; initialStartPending?: boolean; }; export type ProtectedSessionMutationReason = 'codex_app_dispatch' | 'queued_todo' | 'activation_head' | 'activation_tail' | 'repository_setup' | 'initial_start'; export declare function protectedSessionMutationReasons(value: ProtectedRuntimeMutationState | ProtectedSessionMutationState): ProtectedSessionMutationReason[]; /** * True while a session owns work that an ordinary config/restart/switch * mutation is not authorized to abandon. Explicit close remains the escape * hatch. Keep this backend-neutral: the activation journal protects opening * submissions just as the Codex App ledger protects accepted dispatches. */ export declare function hasProtectedSessionMutationOwnership(value: ProtectedRuntimeMutationState | ProtectedSessionMutationState): boolean; export {}; //# sourceMappingURL=session-mutation-guard.d.ts.map