import ProgressBar from '../../console/progressBar.js';
import DAT from '../../types/dats/dat.js';
import File from '../../types/files/file.js';
import Options from '../../types/options.js';
import Module from '../module.js';
/**
 * If no {@link DAT}s are provided, implicitly create some. A {@link DAT} will be created for every
 * subdirectory that contains files, and {@link Game}s will be named after each file's extracted
 * path (without the extension).
 */
export default class DATGameInferrer extends Module {
    private static readonly DEFAULT_DAT_NAME;
    private readonly options;
    constructor(options: Options, progressBar: ProgressBar);
    /**
     * Infer {@link Game}s from input files.
     */
    infer(romFiles: File[]): Promise<DAT[]>;
    private createDAT;
    /**
     * Different types of archives will return different checksums when quick scanning. This will
     * result in files that are actually the same having different hash codes.
     * Look for files that are the same, combine all known checksums, and enrich files with all
     * known checksum information.
     */
    private static enrichLikeFiles;
    private static combineLikeChecksums;
    private static getGameName;
    private inferArchiveEntries;
    private inferBinCueFiles;
    private inferGdiFiles;
    private inferRawFiles;
}
