/** * Interface representing the parsed components of a Semantic Versioning string. */ export interface SemVer { $tag: "semver"; major: number; minor: number; patch: number; prerelease: string[] | null; buildmetadata: string[] | null; toString(): string; } /** * Parses a Semantic Versioning string into its components. * * @param str The SemVer string to parse (e.g., "1.2.3", "2.0.0-alpha.1", "3.1.0+build.123"). * @returns An object containing the parsed major, minor, patch, prerelease, and build metadata components. * @throws {Error} If the input string is not a valid SemVer format. */ export declare function SemVer(str: string): SemVer; export declare namespace SemVer { /** * Compares two SemVer objects based on SemVer precedence rules. * Build metadata is ignored for precedence. * * @param a The first SemVer object. * @param b The second SemVer object. * @returns -1 if a < b, 0 if a == b, 1 if a > b. */ const Compare: typeof SemVerCompare; /** * Parses a Semantic Versioning string into its components. * * @param str The SemVer string to parse (e.g., "1.2.3", "2.0.0-alpha.1", "3.1.0+build.123"). * @returns An object containing the parsed major, minor, patch, prerelease, and build metadata components. */ const Parse: (str: string) => import("./result.js").Failure | import("./result.js").Success; const Is: (v: unknown) => v is SemVer; } export declare function SemVerCompare(a: SemVer, b: SemVer): number;