import type { BulkFileDataCacheApi } from '../Api/BulkFileDataCacheApi'; import type { BulkHeaderFileInfo } from './BulkHeaderFile'; export interface BulkFileDataCacheFsOptions { /** Root for immutable content-addressed cache objects. */ rootFolder: string; /** Read-only legacy locations consulted during in-place migration. */ legacyRoots?: string[]; /** Maximum wait for a per-object cross-process mutation lock. Default: 30 seconds. */ lockTimeoutMsecs?: number; /** Delay between lock attempts. Default: 25 milliseconds. */ lockRetryMsecs?: number; } /** * Atomic filesystem implementation of the bulk-header cache contract. * * This Node-only export is intentionally absent from browser and mobile entry * points. Cache contents are untrusted until the manager verifies their exact * byte length and SHA-256 digest. * * @public */ export declare class BulkFileDataCacheFs implements BulkFileDataCacheApi { private static readonly MAX_HEADERS_PER_FILE; private static readonly MAX_LEGACY_ROOTS; private static readonly SAFE_FILE_NAME; private readonly rootFolder; private readonly legacyRoots; private readonly lockTimeoutMsecs; private readonly lockRetryMsecs; constructor(rootFolderOrOptions: string | BulkFileDataCacheFsOptions); private legacyFilePath; private validateFileName; private validateRoot; private expectedBytes; private validateData; private digestHex; private objectPath; private legacyRejectionMarker; get(file: Readonly): Promise; set(file: Readonly, data: Uint8Array): Promise; private setNoLock; promoteValidated(file: Readonly, data: Uint8Array): Promise; quarantine(file: Readonly, reason: string, rejectedData?: Uint8Array): Promise; private quarantineNoLock; delete(file: Readonly): Promise; private readBoundedFile; private positiveInteger; private snapshotFile; private withObjectLock; } //# sourceMappingURL=BulkFileDataCacheFs.d.ts.map