import * as E from 'fp-ts/Either';
import { Comparison } from '../utils/Comparison';
export interface Version {
    readonly major: number;
    readonly minor: number;
    readonly patch: number;
    readonly preRelease?: string;
    readonly buildMetaData?: string;
}
export interface MajorMinorVersion {
    readonly major: number;
    readonly minor: number;
}
export declare const parseVersionE: (input: string) => E.Either<string, Version>;
export declare const parseVersion: (input: string) => Promise<Version>;
export declare const parseMajorMinorVersion: (input: string) => Promise<MajorMinorVersion>;
export declare const majorMinorVersionToString: (v: MajorMinorVersion) => string;
export declare const versionToString: (v: Version) => string;
export declare const compareMajorMinorVersions: (a: MajorMinorVersion, b: MajorMinorVersion) => Comparison;
export declare const isPreRelease: (v: Version) => boolean;
/**
 * Compares two versions on their major, minor and prerelease versions.
 * Per semver:
 * - released versions beat prerelease versions for the same major.minor.patch
 * - buildMeta is not considered
 *
 * Might not be suitable for sorting.
 *
 * @param a
 * @param b
 */
export declare const compareVersions: (a: Version, b: Version) => Comparison;
//# sourceMappingURL=Version.d.ts.map