import { type RuntimeExclusiveLease } from '@opensip-cli/core'; import { type RuntimePromotionSource } from './runtime-promotion-journal-schema.js'; export interface RuntimePromotionPreflightFsDependencies { readonly afterCandidateResolution?: () => void; readonly afterMarkerRead?: () => void; } export interface RuntimePromotionRecoverySourceAuthorityInput { /** Already-selected canonical project root; aliases and replacements fail closed. */ readonly projectRoot: string; /** Exact canonical cache path derived from the validated journal cache key. */ readonly sourceRuntime: string; readonly source: RuntimePromotionSource; readonly lease: RuntimeExclusiveLease; } export interface RuntimePromotionCanonicalCacheChild { readonly cacheRoot: string; readonly runtimeDir: string; } export interface RuntimePromotionBoundCacheChild extends RuntimePromotionCanonicalCacheChild { readonly rootIdentity: { readonly device: string; readonly inode: string; }; } /** * Resolve a cache-key child from the canonical cache root without following the * selected leaf. */ export declare function canonicalRuntimePromotionCacheChild(cacheRootInput: string, cacheKey: string): RuntimePromotionCanonicalCacheChild; /** * Bind an existing exact cache-key child to a stable directory object. * * @throws {RuntimePromotionPreflightError} When the canonical cache child * cannot be pinned to a stable exact identity. */ export declare function bindRuntimePromotionCacheChild(cacheRootInput: string, cacheKey: string): RuntimePromotionBoundCacheChild; /** * Validate only the canonical location/type needed by monotonic closed cleanup. * * @throws {RuntimePromotionPreflightError} When source or lease authority * cannot be revalidated. */ export declare function assertRuntimePromotionRecoverySourceLocation(input: RuntimePromotionRecoverySourceAuthorityInput): void; /** * Revalidate the cache-source authority recorded by an existing journal. * * @throws {RuntimePromotionPreflightError} When source, marker, or lease * authority changes during the bounded proof. */ export declare function assertRuntimePromotionRecoverySourceAuthority(input: RuntimePromotionRecoverySourceAuthorityInput, dependencies?: Pick): void; export declare class RuntimePromotionFilesystemLeaseMismatchError extends Error { constructor(); } //# sourceMappingURL=runtime-promotion-recovery-source-authority.d.ts.map