export interface DATProps extends CMProObject {
    clrmamepro?: ClrMameProProps;
    game?: GameProps | GameProps[];
    resource?: ROMProps | ROMProps[];
}
export interface ClrMameProProps extends CMProObject {
    name?: string;
    description?: string;
    category?: string;
    version?: string;
    forcemerging?: 'none' | 'split' | 'full';
    forcezipping?: 'yes' | 'no';
    date?: string;
    author?: string;
    homepage?: string;
    url?: string;
    comment?: string;
}
export interface GameProps extends CMProObject {
    name?: string;
    description?: string;
    year?: string;
    manufacturer?: string;
    cloneof?: string;
    romof?: string;
    rom?: ROMProps | ROMProps[];
    disk?: ROMProps | ROMProps[];
    sample?: SampleProps | SampleProps[];
    comment?: string;
    genre?: string;
}
export interface ROMProps extends CMProObject {
    name?: string;
    size?: string;
    crc?: string;
    md5?: string;
    sha1?: string;
}
export interface SampleProps extends CMProObject {
    name: string;
}
type CMProValue = CMProObject | string | undefined;
interface CMProObject {
    [key: string]: CMProValue | CMProValue[];
}
/**
 * A parser for CMPRo schema DATs.
 * @see http://www.logiqx.com/DatFAQs/CMPro.php
 */
export default class CMProParser {
    private static readonly WHITESPACE_CHARS;
    private readonly contents;
    private pos;
    constructor(contents: string);
    /**
     * Parse the CMPro DAT's file contents.
     */
    parse(): DATProps;
    private skipWhitespace;
    private parseObject;
    private parseTag;
    private parseValue;
    private parseQuotedString;
    private parseUnquotedString;
}
export {};
