import '../../../globals.js';
type SimVersionOptions = {
    testType?: string | null;
    testNumber?: number | null;
    buildTimestamp?: string | null;
};
export default class SimVersion {
    readonly major: number;
    readonly minor: number;
    readonly maintenance: number;
    readonly testType: string | null;
    readonly testNumber: number | null;
    readonly buildTimestamp: string | null;
    /**
     * @constructor
     *
     * @param {number|string} major - The major part of the version (the 3 in 3.1.2)
     * @param {number|string} minor - The minor part of the version (the 1 in 3.1.2)
     * @param {number|string} maintenance - The maintenance part of the version (the 2 in 3.1.2)
     * @param {Object} [options]
     */
    constructor(major: number | string, minor: number | string, maintenance: number | string, options?: SimVersionOptions);
    /**
     * Convert into a plain JS object meant for JSON serialization.
     * @public
     *
     * @returns {Object} - with properties like major, minor, maintenance, testType, testNumber, and buildTimestamp
     */
    serialize(): Record<string, unknown>;
    /**
     * @ignore - not needed by PhET-iO Clients
     */
    get isSimNotPublished(): boolean;
    /**
     * @ignore - not needed by PhET-iO Clients
     */
    get isSimPublished(): boolean;
    /**
     * Takes a serialized form of the SimVersion and returns an actual instance.
     * @public
     *
     * @param {Object} - with properties like major, minor, maintenance, testType, testNumber, and buildTimestamp
     * @returns {SimVersion}
     */
    static deserialize({ major, minor, maintenance, testType, testNumber, buildTimestamp }: {
        major: any;
        minor: any;
        maintenance: any;
        testType: any;
        testNumber: any;
        buildTimestamp: any;
    }): SimVersion;
    /**
     * Compares versions, returning -1 if this version is before the passed in version, 0 if equal, or 1 if this version
     * is after.
     * @public
     *
     * This function only compares major/minor/maintenance, leaving other details to the client.
     *
     * @param {SimVersion} version
     */
    compareNumber(version: SimVersion): number;
    /**
     * Compares versions in standard "comparator" static format, returning -1 if the first parameter SimVersion is
     * before the second parameter SimVersion in version-string, 0 if equal, or 1 if the first parameter SimVersion is
     * after.
     * @public
     *
     * This function only compares major/minor/maintenance, leaving other details to the client.
     *
     * @param {SimVersion} a
     * @param {SimVersion} b
     */
    static comparator(a: SimVersion, b: SimVersion): number;
    /**
     * Returns true if the specified version is strictly after this version
     * @param {SimVersion} version
     * @returns {boolean}
     * @public
     */
    isAfter(version: SimVersion): boolean;
    /**
     * Returns true if the specified version matches or comes before this version.
     * @param version
     * @returns {boolean}
     * @public
     */
    isBeforeOrEqualTo(version: SimVersion): boolean;
    /**
     * Returns the string form of the version. Like "1.3.5".
     * @public
     *
     * @returns {string}
     */
    toString(): string;
    /**
     * Parses a sim version from a string form.
     * @public
     *
     * @param {string} versionString - e.g. '1.0.0', '1.0.1-dev.3', etc.
     * @param {string} [buildTimestamp] - Optional build timestamp, like '2015-06-12 16:05:03 UTC' (phet.chipper.buildTimestamp)
     * @returns {SimVersion}
     */
    static parse(versionString: string, buildTimestamp?: string): SimVersion;
    /**
     * Parses a branch in the form {{MAJOR}}.{{MINOR}} and returns a corresponding version. Uses 0 for the maintenance version (unknown).
     * @public
     *
     * @param {string} branch - e.g. '1.0'
     * @returns {SimVersion}
     */
    static fromBranch(branch: string): SimVersion;
    /**
     * Ensures that a branch name is ok to be a release branch.
     * @public
     *
     * @param {string} branch - e.g. '1.0'
     * @ignore - not needed by PhET-iO Clients
     */
    static ensureReleaseBranch(branch: string): void;
}
export {};
//# sourceMappingURL=SimVersion.d.ts.map