import { type NodeFileSystem } from './filesystem.js'; import type { InstallPlan, LifecycleResult } from './types.js'; export type InstallerFaultPhase = 'after-lock' | 'after-header' | 'after-intent' | 'after-temp-sync' | 'before-rename' | 'after-rename' | 'after-operation' | 'after-applied' | 'after-verification' | 'after-ledger' | 'before-commit' | 'after-commit' | 'recovery-started' | 'before-recovery-operation' | 'after-recovery-read' | 'before-ledger-mutation' | 'after-ledger-claim' | 'after-ledger-mutation' | 'after-terminal-observation' | 'after-restored'; export interface InstallerCoordinatorOptions { readonly filesystem: NodeFileSystem; readonly environment?: Readonly; readonly lockTimeoutMs?: number; readonly fault?: (phase: InstallerFaultPhase, operationIndex?: number) => void | Promise; } export declare class InstallerCoordinator { #private; constructor(options: InstallerCoordinatorOptions); apply(candidate: InstallPlan): Promise; recover(location: string): Promise; doctor(location: string): Promise; } export declare function buildPlanDigest(plan: Omit): string; export declare function newTransactionId(): string;