import { type EphemeralProjectPaths, type RuntimeExclusiveLease } from '@opensip-cli/core'; import { type RuntimePromotionSource } from './runtime-promotion-journal-schema.js'; import { type RuntimePromotionPathSnapshot } from './runtime-promotion-path-snapshot.js'; import type { RuntimePromotionPreflightFsDependencies } from './runtime-promotion-recovery-source-authority.js'; export { runtimePromotionPathSnapshot, sameRuntimePromotionPathSnapshot, } from './runtime-promotion-path-snapshot.js'; export type { RuntimePromotionPathIdentity, RuntimePromotionPathPresence, RuntimePromotionPathSnapshot, } from './runtime-promotion-path-snapshot.js'; export { assertRuntimePromotionRecoverySourceAuthority, assertRuntimePromotionRecoverySourceLocation, bindRuntimePromotionCacheChild, canonicalRuntimePromotionCacheChild, RuntimePromotionFilesystemLeaseMismatchError, } from './runtime-promotion-recovery-source-authority.js'; export type { RuntimePromotionBoundCacheChild, RuntimePromotionCanonicalCacheChild, RuntimePromotionPreflightFsDependencies, RuntimePromotionRecoverySourceAuthorityInput, } from './runtime-promotion-recovery-source-authority.js'; export interface RuntimePromotionSourceRevalidation { readonly kind: 'active' | 'legacy'; readonly runtimeDir: string; readonly cacheKey: string; readonly markerSha256: string; readonly runtime: RuntimePromotionPathSnapshot; } export interface RuntimePromotionFilesystemInspection { readonly projectRoot: string; readonly ephemeral: Pick; readonly projectRootSnapshot: RuntimePromotionPathSnapshot; readonly activeCandidateDir: string; readonly activeCandidate: RuntimePromotionPathSnapshot; readonly legacyCandidateDir?: string; readonly legacyCandidate?: RuntimePromotionPathSnapshot; readonly destinationParentDir: string; readonly destinationRuntimeDir: string; readonly destinationParent: RuntimePromotionPathSnapshot; readonly destinationRuntime: RuntimePromotionPathSnapshot; readonly source: RuntimePromotionSource; readonly sourceRevalidation?: RuntimePromotionSourceRevalidation; } export type RuntimePromotionFilesystemConflictReason = 'cache-candidates-ambiguous' | 'cache-marker-invalid' | 'cache-path-unsafe' | 'project-path-unsafe'; export type RuntimePromotionFilesystemInspectionResult = { readonly status: 'ready'; readonly inspection: RuntimePromotionFilesystemInspection; } | { readonly status: 'conflict'; readonly reason: RuntimePromotionFilesystemConflictReason; readonly sourcePreserved: boolean; }; /** @throws {RuntimePromotionFilesystemLeaseMismatchError} When the lease is not project-bound. */ export declare function inspectRuntimePromotionFilesystem(projectRootInput: string, lease: RuntimeExclusiveLease, dependencies?: RuntimePromotionPreflightFsDependencies): RuntimePromotionFilesystemInspectionResult; export declare function readRuntimePromotionMarkerSha256(source: RuntimePromotionSourceRevalidation): string | undefined; //# sourceMappingURL=runtime-promotion-preflight-fs.d.ts.map