import { CacheRecord } from "./types";
import { BuilderConfig } from "../cli/builder";
export declare class BuildCache {
    private readonly contracts;
    private readonly buildFolder;
    private readonly compilerConfig;
    private prevCache;
    private currentCache;
    constructor(contracts: string[], isForce: boolean, buildFolder: string, compilerConfig: BuilderConfig);
    getBuiltContracts(): string[];
    buildTree(): Promise<string[]>;
    findContractsAndImports(contracts: string[]): Promise<{
        contractsWithImports: {
            path: string;
            imports: {
                path: string;
                modificationTime: number;
            }[];
        }[];
        contractsMap: Map<string, boolean>;
    }>;
    getUniqueFiles(contractsWithImports: Array<{
        path: string;
        imports: Array<{
            path: string;
        }>;
    }>): string[];
    getUpdatedOrNewFiles(filesWithModTime: CacheRecord, cache: CacheRecord): string[];
    applyModTime(files: string[]): CacheRecord;
    applyCurrentCache(): void;
    applyOldCache(): void;
    clearCache(): void;
    removeRecordFromCache(filePath: string): void;
    static clearCache(): void;
}
