/** A parsed semantic version. Prerelease is captured but never compared. */ export type SemVer = { major: number; minor: number; patch: number; prerelease?: string; }; export type RangeErrorShape = { code: 'SEMVER_RANGE_INVALID' | 'SEMVER_INVALID'; message: string; hint: string; }; export declare class SemVerError extends Error { readonly code: RangeErrorShape['code']; readonly hint: string; constructor(shape: RangeErrorShape); } /** Parse `major.minor.patch[-prerelease][+build]`. Throws {@link SemVerError}. */ export declare function parseVersion(input: string): SemVer; /** -1 / 0 / 1. Prerelease is ignored: the gate compares release lines only. */ export declare function compareVersions(a: SemVer, b: SemVer): number; /** * Does `version` satisfy `range`? * * Throws {@link SemVerError} on a range this grammar does not accept — loudly, * rather than defaulting to permissive. A gate that passes what it cannot parse * is not a gate. */ export declare function satisfiesRange(version: string | SemVer, range: string): boolean; /** * True if `s` is a bare version rather than a range. * * The gate accepts a bare version as an exact-match range for backward * compatibility with packs written before ranges existed, and ADVISES on it — * `engineVersion: '2.0.0'` sitting unread against a 3.8.0 engine is exactly how * C0's version skew stayed invisible (REPORT §5, item 2). */ export declare function isBareVersion(s: string): boolean; //# sourceMappingURL=semver-range.d.ts.map