import * as Schema from "effect/Schema"; import * as Option from "effect/Option"; /** * Minimal version entry shape used for range resolution. * Compatible with the full VersionEntry from the registry module. */ export interface VersionEntryLike { readonly version: Version; } /** * Canonical strict semver pattern from semver.org. * * Equivalent to `semver.valid(value) === value`: rejects leading `v`, * whitespace, partial versions, and leading-zero numeric identifiers. */ export declare const SEMVER_PATTERN: RegExp; /** * Schema for an exact semver version (no ranges). */ export declare const VersionSchema: Schema.brand; /** * Inferred type for an exact semver version. */ export type Version = Schema.Schema.Type; /** * Schema for a semver version range, including exact versions and range expressions. */ export declare const VersionRangeSchema: Schema.brand; /** * Inferred type for a semver version range. */ export type VersionRange = Schema.Schema.Type; /** * Decode a value as an exact semver version. */ export declare const decodeVersionSync: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Version">; /** * Decode a value as a semver version range. */ export declare const decodeVersionRangeSync: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"VersionRange">; /** * Extract a version range suffix from a source string. * * Handles both namespaced (`@handle/name@^1.0.0`) and non-namespaced (`name@^1.0.0`) names. * Returns `Option.none()` when no version suffix is present. */ export declare const parseVersionRange: (sourceString: string) => Option.Option; /** * Check whether a string is a valid semver version range. */ export declare const isValidVersionRange: (range: string) => boolean; /** Return one range representing the complete intersection, or undefined when unsatisfiable. */ export declare const intersectVersionConstraints: (constraints: ReadonlyArray) => string | undefined; /** * Check whether moving from `previousVersion` to `currentVersion` includes at * least a minor version bump. */ export declare const hasMinorOrMajorVersionBump: (previousVersion: string, currentVersion: string) => boolean; /** * Check whether a version satisfies a semver version range. */ export declare const versionSatisfiesRange: (version: Version, range: VersionRange) => boolean; /** * Select the maximum version that satisfies the range, independent of input * order. * * - `Option.none()` range or `"*"` matches any version. * - Invalid ranges match nothing. */ export declare const resolveVersionInRange: (versions: ReadonlyArray, range: Option.Option) => Option.Option; //# sourceMappingURL=version-constraints.d.ts.map