import { SemVer } from 'semver';
export declare class Version<T extends SemVer | number> {
    readonly value: T;
    constructor(value: T);
    equals(other: Version<T>): boolean;
    compare(other: Version<T>): number;
    toString(): string;
    private static isSemVer;
    private static isNumeric;
    /**
     * Validates if a string is a valid semantic version and handles the 'v' prefix
     *
     * @param versionString - The version string to validate
     * @param isNeedPrefix - If true, adds 'v' prefix if missing; if false, removes 'v' prefix if present
     * @param label - Label to use in error messages (e.g., 'Release tag', 'Version')
     * @returns The processed version string with proper prefix handling
     * @throws SoloError or IllegalArgumentError if the version string is invalid
     */
    static getValidSemanticVersion(versionString: string, isNeedPrefix?: boolean, label?: string): string;
}
