import type { ManagedOwnerBinding, ManagedOwnerSigabrtReceipt } from "./managed-owner-supervisor"; import { type UltragoalRecoveryDecision } from "./ultragoal-owner-loss-recovery"; export declare const MANAGED_OWNER_PREDECESSOR_TOKEN_ENV = "GJC_MANAGED_OWNER_PREDECESSOR_TOKEN"; export declare const MANAGED_OWNER_PREDECESSOR_GENERATION_ENV = "GJC_MANAGED_OWNER_PREDECESSOR_GENERATION"; export declare const MANAGED_OWNER_PREDECESSOR_RUN_ID_ENV = "GJC_MANAGED_OWNER_PREDECESSOR_RUN_ID"; export declare const MANAGED_OWNER_PREDECESSOR_INCARNATION_ENV = "GJC_MANAGED_OWNER_PREDECESSOR_INCARNATION"; export declare const MANAGED_OWNER_TRANSCRIPT_PATH_ENV = "GJC_MANAGED_OWNER_TRANSCRIPT_PATH"; export interface ManagedOwnerRecoveryContext { root: string; binding: ManagedOwnerBinding; receipt: ManagedOwnerSigabrtReceipt; admission: { session_id: string; endpoint_incarnation: string; owner_generation: string; admitted: true; }; decision: UltragoalRecoveryDecision; } export type ManagedOwnerAdmission = { kind: "fresh" | "supervised"; } | { kind: "recovery"; context: ManagedOwnerRecoveryContext; } | { kind: "blocked"; }; /** * This is the pre-CLI barrier. A replacement is identified only by the exact * predecessor token supplied by its launch binding; directory enumeration is * deliberately never an authority source. */ export declare function admitManagedOwnerBeforeCli(): Promise; /** * The ordinary CLI factory has no recovery-owned writer-lease or exact-child * reconciliation capability. Do not route a recovered owner through it: first * revalidate the immutable evidence and B0, then publish a terminal handoff. */ export declare function completeManagedOwnerRecovery(context: ManagedOwnerRecoveryContext): Promise<{ kind: "handoff"; exitCode: 75; }>;