/** * Bounded user-uninstall receipt body helpers. * * Core validates only the recovery header (kind/version/state/operationId). * The CLI body is write-ahead phase state without absolute HOME paths. */ import { RUNTIME_RECOVERY_HEADER_VERSION } from '@opensip-cli/core'; export declare const USER_UNINSTALL_MARKER_BASENAME = ".opensip-user-uninstall-marker"; export declare const USER_UNINSTALL_TOMBSTONE_PREFIX = ".opensip-user-uninstall-tombstone-"; export type UserUninstallPhase = 'marker-create-intent' | 'marker-created' | 'rename-intent' | 'renamed' | 'delete-intent' | 'deleted'; export interface UserUninstallReceiptBody { readonly kind: 'user-uninstall'; readonly version: typeof RUNTIME_RECOVERY_HEADER_VERSION; readonly state: 'open' | 'closed'; readonly operationId: string; readonly phase: UserUninstallPhase; /** Same-parent tombstone basename only — never an absolute path. */ readonly tombstoneBasename: string; /** Fixed marker basename under the source/tombstone root. */ readonly markerBasename: typeof USER_UNINSTALL_MARKER_BASENAME; /** Hex digest of the exclusive marker file content. */ readonly markerDigest: string; readonly createdAtMs: number; readonly updatedAtMs: number; readonly reason?: string; } export declare function newOperationId(): string; export declare function newTombstoneBasename(operationId: string): string; export declare function newMarkerContent(): Buffer; export declare function digestMarkerContent(content: Buffer | string): string; export declare function buildOpenReceipt(args: { readonly operationId: string; readonly phase: UserUninstallPhase; readonly tombstoneBasename: string; readonly markerDigest: string; readonly createdAtMs?: number; readonly reason?: string; }): UserUninstallReceiptBody; export declare function advanceReceipt(receipt: UserUninstallReceiptBody, phase: UserUninstallPhase, extras?: Partial>): UserUninstallReceiptBody; export declare function closeReceipt(receipt: UserUninstallReceiptBody): UserUninstallReceiptBody; export declare function serializeReceipt(receipt: UserUninstallReceiptBody): string; export declare function parseReceiptBody(content: string): UserUninstallReceiptBody | undefined; //# sourceMappingURL=user-uninstall-receipt.d.ts.map