import { AbstractProcess } from "../abstract/AbstractProcess.js";
interface FileCacheOptions {
    cacheDir?: string;
    maxEntries?: number;
    ttl?: number;
}
export declare class FileCache extends AbstractProcess {
    private static instance;
    private cache;
    private cacheDir;
    private maxEntries;
    private ttl;
    private cacheIndexPath;
    private initialized;
    private stats;
    private constructor();
    static getInstance(options?: FileCacheOptions): FileCache;
    static resetInstance(): void;
    initialize(): Promise<void>;
    hasFileChanged(filePath: string): Promise<boolean>;
    updateFileEntry(filePath: string): Promise<void>;
    getChangedFiles(filePaths: string[]): Promise<string[]>;
    updateFileEntries(filePaths: string[]): Promise<void>;
    invalidate(filePath: string): void;
    invalidatePattern(pattern: string): void;
    clear(): void;
    save(): Promise<void>;
    getStats(): {
        hits: number;
        misses: number;
        evictions: number;
        size: number;
        hitRate: string;
    };
    private normalizePath;
    private computeFileHash;
    private ensureCacheDirectory;
    private loadCacheFromDisk;
    private evictOldEntries;
}
export {};
//# sourceMappingURL=FileCache.d.ts.map