import { type Dirent } from 'node:fs'; export interface NativeProtectedFileHooks { afterParentChainCaptured?: () => void | Promise; afterOpen?: () => void | Promise; beforeRead?: () => void | Promise; beforeFinalCheck?: () => void | Promise; beforeTargetCommit?: () => void | Promise; } export interface NativeProtectedFile { bytes: Buffer; hash: string; size: number; } export interface NativeProtectedTextFile extends NativeProtectedFile { text: string; } export declare function readNativeProtectedFile(options: { root: string; file: string; maxBytes: number; label: string; forbiddenRoots?: readonly string[]; hooks?: NativeProtectedFileHooks; }): Promise; export declare function readNativeProtectedTextFile(options: { root: string; file: string; maxBytes: number; label: string; forbiddenRoots?: readonly string[]; hooks?: NativeProtectedFileHooks; }): Promise; export declare function readNativeProtectedDirectory(options: { root: string; directory: string; label: string; maxEntries?: number; }): Promise<{ entries: Dirent[]; verify: () => Promise; }>; export declare function captureNativeProtectedDirectoryGuard(options: { root: string; directory: string; label: string; }): Promise<{ verify: () => Promise; }>; export declare function quarantineNativeProtectedDirectory(options: { root: string; directory: string; quarantine: string; label: string; beforeQuarantine?: () => void | Promise; afterQuarantine?: (quarantine: string) => void | Promise; }): Promise; export declare function removeNativeProtectedDirectory(options: { root: string; directory: string; quarantine: string; label: string; beforeQuarantine?: () => void | Promise; afterQuarantine?: (quarantine: string) => void | Promise; beforeRemove?: (quarantine: string) => void | Promise; }): Promise; export declare function removeNativeProtectedFile(options: { root: string; file: string; maxBytes: number; expectedHash: string; expectedSize: number; label: string; beforeRemove?: () => void | Promise; }): Promise; export declare function removeNativeProtectedEmptyDirectory(options: { root: string; directory: string; label: string; beforeRemove?: () => void | Promise; }): Promise; export declare function removeNativeProtectedQuarantine(options: { root: string; quarantine: string; label: string; beforeRemove?: (quarantine: string) => void | Promise; }): Promise; export declare function ensureNativeProtectedDirectory(options: { root: string; directory: string; label: string; }): Promise; /** Move a real directory inside one managed root while binding the source object identity. */ export declare function moveNativeProtectedDirectory(options: { root: string; source: string; target: string; label: string; beforeMove?: () => void | Promise; }): Promise; export declare function copyNativeProtectedFile(options: { sourceRoot: string; source: string; targetRoot: string; target: string; maxBytes: number; label: string; expectedHash?: string; expectedTargetHash?: string | null; forbiddenRoots?: readonly string[]; exclusive?: boolean; hooks?: NativeProtectedFileHooks; }): Promise; //# sourceMappingURL=native-protected-file.d.ts.map