/** * Crash-recoverable user-level uninstall (`opensip uninstall` / `--user`). * * Flow: * 1. Confirm (never while exclusive is held). * 2. Acquire global maintenance lease. * 3. Refuse if any project promotion journal exists. * 4. Write open receipt → exclusive marker in user root → rename to tombstone * → recursive delete of tombstone → closed receipt → unlink receipt. * 5. `--discard-recovery` unlinks only a malformed/absent-body fixed receipt. */ import { type GlobalRuntimeMaintenanceLease } from '@opensip-cli/core'; import type { UninstallDoneResult } from '@opensip-cli/contracts'; type UserRemovalPosture = 'normal' | 'user-recovery' | 'receipt-only-discard'; export interface UserRemovalOptions { readonly userRoot: string; readonly yes?: boolean; readonly dryRun?: boolean; readonly discardRecovery?: boolean; /** Host-owned human-presentation sink; omitted callers receive only the returned result. */ readonly write?: (s: string) => void; readonly prompt?: (question: string) => Promise; readonly acquireGlobalLease?: (posture: UserRemovalPosture) => Promise; } export declare function executeUserRemoval(opts: UserRemovalOptions): Promise; export {}; //# sourceMappingURL=user-removal.d.ts.map