import type { SourceCandidateStore } from '../../../shared/source-candidates.js';
import type { ResolvedSourceScan } from '../../../shared/source-scan.js';
export interface WebpackSourceCandidateCacheRecord {
    getSourceCandidatesForEntries: SourceCandidateStore['valuesForEntries'];
    signatureHash: string;
    tokenSources: ReturnType<SourceCandidateStore['sourcesForEntries']>;
}
export interface WebpackSourceCandidateScanMemoryStats {
    entries: number;
    files: number;
    lastHit: boolean;
    signatureHash?: string | undefined;
    snapshots: number;
}
interface ResolveWebpackSourceCandidateCacheOptions {
    changedFiles?: Iterable<string> | undefined;
    collector: SourceCandidateStore;
    outDir: string;
    root: string;
    sourceScan: ResolvedSourceScan | undefined;
    watchMode: boolean;
}
export declare function createWebpackSourceCandidateScanCache(): {
    getMemoryStats: () => WebpackSourceCandidateScanMemoryStats;
    resolve: ({ changedFiles, collector, outDir, root, sourceScan, watchMode, }: ResolveWebpackSourceCandidateCacheOptions) => Promise<WebpackSourceCandidateCacheRecord>;
};
export type WebpackSourceCandidateScanCache = ReturnType<typeof createWebpackSourceCandidateScanCache>;
export {};
