/** * Version pin resolver. * * Resolves a version pin expression (^1.4, ~1.4, 1.4.x, latest, exact:1.4.2) * against a set of available versions. Ties broken by highest semver. * * @docLink packages/library/api-reference#pin-resolver */ /** * A version pin expression string. * * Supported formats: `exact:X.Y.Z`, `X.Y.Z` (bare), `^X.Y`, `~X.Y`, `X.Y.x`, `latest`. * * @docLink packages/library/api-reference#pin-resolver */ export type PinExpression = string; /** * Result of a successful {@link resolvePin} call. * * @docLink packages/library/api-reference#pin-resolver */ export interface ResolveResult { /** The matched version string. */ version: string; /** How the match was made. */ match: "exact" | "range" | "latest"; } /** * Resolve a version pin expression against available versions. * * Supported pin formats: * - `exact:1.4.2` — exact match only * - `1.4.2` — exact match (bare version) * - `^1.4` or `^1.4.0` — caret range (>=1.4.0, <2.0.0) * - `~1.4` or `~1.4.0` — tilde range (>=1.4.0, <1.5.0) * - `1.4.x` — same as ~1.4 (patch-level) * - `latest` — highest available version * * @param pin - The pin expression string. * @param availableVersions - All available version strings to match against. * @returns The best matching version (highest within range), or null if no match. * @docLink packages/library/api-reference#pin-resolver */ export declare function resolvePin(pin: PinExpression, availableVersions: string[]): ResolveResult | null; //# sourceMappingURL=pin-resolver.d.ts.map