import File from '../types/files/file.js';
import ROM from './dats/rom.js';
export type ChecksumsToFiles = Map<string, File[]>;
export interface AllChecksums {
    crc32: ChecksumsToFiles;
    md5: ChecksumsToFiles;
    sha1: ChecksumsToFiles;
    sha256: ChecksumsToFiles;
}
/**
 * A lookup table of {@link File}s based on their checksums.
 */
export default class IndexedFiles {
    private readonly crc32;
    private readonly md5;
    private readonly sha1;
    private readonly sha256;
    private constructor();
    /**
     * Generate a {@link IndexedFiles} based on a set of {@link File}s.
     */
    static fromFiles(files: File[]): IndexedFiles;
    private static combineMaps;
    getFiles(): File[];
    getFilesByFilePath(): Map<string, File[]>;
    getSize(): number;
    /**
     * Find file(s) in the index based some search criteria.
     */
    findFiles(file: File | ROM): File[] | undefined;
}
