import Game from './game.js';
import Header from './logiqx/header.js';
import Parent from './parent.js';
/**
 * The base class for other DAT classes.
 */
export default abstract class DAT {
    private parents;
    abstract getHeader(): Header;
    abstract getGames(): Game[];
    /**
     * Group all {@link Game} clones together into one {@link Parent}. If no parent/clone information
     * exists, then there will be one {@link Parent} for every {@link Game}.
     */
    protected generateGameNamesToParents(): this;
    getParents(): Parent[];
    /**
     * Does any {@link Game} in this {@link DAT} have clone information.
     */
    hasParentCloneInfo(): boolean;
    getName(): string;
    getDisplayName(): string;
    getDescription(): string | undefined;
    /**
     * Get a No-Intro style filename.
     */
    getFilename(): string;
    getRequiredRomChecksumBitmask(): number;
    getRequiredDiskChecksumBitmask(): number;
    /**
     * Serialize this {@link DAT} to the file contents of an XML file.
     */
    toXmlDat(): string;
    private toXmlDatObj;
    /**
     * Return a short string representation of this {@link DAT}.
     */
    toString(): string;
}
