import { type FileHandle } from "fs/promises"; import { type DirectorySyncOutcome, type RegularFileDurabilityTracker, type RegularFileSyncOutcome } from "../utils/file-durability.js"; export interface NativeHookClaimJournalDurability { platform: NodeJS.Platform; syncRegularFile(handle: Pick): Promise; syncDirectory(path: string): Promise; } interface ClaimJournalEntry { version: 1; ownerPid: number; canonicalPath: string; claimPath: string; beforeHash: string; afterHash: string | null; } type NativeHookClaimJournalOpen = (path: string, flags: "r") => Promise>; /** @internal Test seam for deterministic native directory-fsync coverage. */ export declare function setNativeHookClaimJournalOpenForTest(openFn: NativeHookClaimJournalOpen): () => void; export declare function wrapNativeHookClaimJournalDurability(durability: NativeHookClaimJournalDurability, tracker?: RegularFileDurabilityTracker): NativeHookClaimJournalDurability; export declare function createNativeHookClaimJournalDurability(platform?: NodeJS.Platform, tracker?: RegularFileDurabilityTracker): NativeHookClaimJournalDurability; export declare function syncNativeHookClaimParent(path: string, durability: NativeHookClaimJournalDurability): Promise; export declare function restoreNativeHookClaimNoClobber(claimPath: string, destinationPath: string, durability: NativeHookClaimJournalDurability): Promise; export declare function persistNativeHookClaimJournal(root: string, entry: Omit & { before: Buffer; after: Buffer | null; }, durability: NativeHookClaimJournalDurability): Promise; export declare function clearNativeHookClaimJournal(root: string, durability: NativeHookClaimJournalDurability): Promise; export declare function recoverNativeHookClaimJournal(root: string, durability: NativeHookClaimJournalDurability): Promise<{ recovered: boolean; outcome: RegularFileSyncOutcome; }>; export {}; //# sourceMappingURL=native-hook-claim-journal.d.ts.map