import { Nullable } from "./base-types";
/**
 * Represents the file version of an assembly
 */
export declare class FileVersion {
    major: number;
    minor: number;
    patch: number;
    revision: number;
    constructor(major: number, minor: number, patch?: number, revision?: number);
    /**
     * Parses a file version string (format: `<major>.<minor>.<patch>.<revision>`) to an instance.
     *
     * @remarks
     * Throws an error when parsing fails.
     *
     * @param fileVersion - The file version string to parse
     * @returns A file version instance.
     */
    static parse(fileVersion: string): FileVersion;
    /**
     * Tries to parse a file version string (see {@link FileVersion.parse}) and returns `null` or the specified default
     * value when it fails.
     *
     * @param fileVersion - The file version string to parse
     * @param defaultValue - The value to return when parsing fails
     * @returns A file version instance or `null`.
     */
    static tryParse(fileVersion: string, defaultValue?: Nullable<FileVersion>): Nullable<FileVersion>;
    /**
     * Compares if the current instance is smaller than the specified version.
     *
     * @param otherVersion - The version to compare the current instance to
     * @returns A boolean with the result.
     */
    smallerThan(otherVersion: FileVersion): boolean;
    /**
     * Compares if the current instance is smaller or equal than the specified version.
     *
     * @param otherVersion - The version to compare the current instance to
     * @returns A boolean with the result.
     */
    smallerThanOrEqual(otherVersion: FileVersion): boolean;
    /**
     * Compares if the current instance is greater than the specified version.
     *
     * @param otherVersion - The version to compare the current instance to
     * @returns A boolean with the result.
     */
    greaterThan(otherVersion: FileVersion): boolean;
    /**
     * Compares if the current instance is greater or equal than the specified version.
     *
     * @param otherVersion - The version to compare the current instance to
     * @returns A boolean with the result.
     */
    greaterThanOrEqual(otherVersion: FileVersion): boolean;
    /**
     * Compares if the current instance equals (by values) the specified file.
     *
     * @param otherVersion - The version to compare the current instance to
     * @returns A boolean with the result.
     */
    equals(otherVersion: FileVersion): boolean;
    /**
     * Compare the current instance with the specified file.
     *
     * @param otherVersion - The version to compare the current instance to
     * @returns 0 when the versions are equal,.
     *          1 when the current instance is greater,
     *          -1 when the current instance is smaller
     */
    compareTo(otherVersion: FileVersion): 1 | 0 | -1;
    /**
     * Gets the file version string representation for this instance.
     */
    toString(): string;
}
