import { SpilloverRecord, SpilloverStore } from './spillover-store.interface.js'; export interface FsSpilloverOptions { storageDir?: string; sweepIntervalSeconds?: number; /** Total bytes retained on disk (default: 512MB). A single record larger than this is refused. */ maxSizeBytes?: number; } /** * Filesystem spillover store. * * Directory mode 0o700 and file mode 0o600 are enforced on Unix. Windows ignores * those bits, so a shared temp directory is not private there; set `storageDir` * to a directory only this process can read. */ export declare class FsSpilloverStore implements SpilloverStore { private storageDir; private readonly explicitDir; private readonly maxSizeBytes; private readonly sweepTimer; private initialized; private usageReady; private currentSizeBytes; /** Serializes saves so two writers cannot both pass the capacity check. */ private writeChain; constructor(options?: FsSpilloverOptions); private ensureDir; /** * Refuse a symlink. mkdir({ recursive: true }) follows one, and chmod follows * it too, so a planted link would receive the spilled files. */ private assertRealDirectory; private sanitizeId; private getFilePath; getStorageDir(): string; getMaxSizeBytes(): number; getCurrentSizeBytes(): number; private enqueue; save(id: string, data: string, mimeType: string, ttlSeconds: number, sessionId?: string): Promise; private writeRecord; get(id: string): Promise; delete(id: string): Promise; private unlinkId; private deleteIfStillExpired; cleanup(): Promise; private cleanupNow; private ensureUsage; private fileSize; /** Deletes the oldest payload file, excluding the path about to be replaced. */ private evictOldestFile; /** First bytes of a record. `expiresAt` is written before the payload. */ private readExpiresAt; dispose(): Promise; } //# sourceMappingURL=fs-spillover.store.d.ts.map