/**
 * Semantic Versioning Utilities
 *
 * Provides parsing, comparison, and range matching for SemVer versions.
 *
 * @packageDocumentation
 */
export interface Version {
    /** Major version (breaking changes) */
    major: number;
    /** Minor version (features) */
    minor: number;
    /** Patch version (fixes) */
    patch: number;
    /** Pre-release identifier */
    prerelease?: string;
    /** Build metadata */
    build?: string;
}
export interface VersionRange {
    /** Minimum version (inclusive) */
    min?: Version;
    /** Maximum version (exclusive) */
    max?: Version;
    /** Allow pre-release versions */
    includePrerelease?: boolean;
}
/**
 * SemVer regex pattern
 * Matches: 1.0.0, 1.0.0-beta.1, 1.0.0+build.123, 1.0.0-beta.1+build.123
 */
export declare const SEMVER_REGEX: RegExp;
/**
 * Parse a version string into components
 */
export declare function parseVersion(version: string): Version;
/**
 * Try to parse a version, returning null on failure
 */
export declare function tryParseVersion(version: string): Version | null;
/**
 * Check if a string is a valid version
 */
export declare function isValidVersion(version: string): boolean;
/**
 * Format a version object as a string
 */
export declare function formatVersion(version: Version): string;
/**
 * Compare two versions
 * @returns -1 if a < b, 0 if a == b, 1 if a > b
 */
export declare function compareVersions(a: Version, b: Version): -1 | 0 | 1;
/**
 * Check if version a equals version b
 */
export declare function eq(a: Version | string, b: Version | string): boolean;
/**
 * Check if version a is greater than version b
 */
export declare function gt(a: Version | string, b: Version | string): boolean;
/**
 * Check if version a is less than version b
 */
export declare function lt(a: Version | string, b: Version | string): boolean;
/**
 * Check if version a is greater than or equal to version b
 */
export declare function gte(a: Version | string, b: Version | string): boolean;
/**
 * Check if version a is less than or equal to version b
 */
export declare function lte(a: Version | string, b: Version | string): boolean;
/**
 * Check if a version satisfies a range expression
 *
 * Supported expressions:
 * - `1.0.0` - Exact match
 * - `>1.0.0` - Greater than
 * - `>=1.0.0` - Greater than or equal
 * - `<1.0.0` - Less than
 * - `<=1.0.0` - Less than or equal
 * - `^1.0.0` - Compatible (same major, >= version)
 * - `~1.0.0` - Approximately (same major.minor, >= version)
 * - `1.x` or `1.x.x` - Any minor/patch
 * - `>=1.0.0 <2.0.0` - Range (space-separated AND)
 * - `1.0.0 || 2.0.0` - OR conditions
 */
export declare function satisfies(version: Version | string, range: string): boolean;
/**
 * Check caret (^) compatibility
 * Same major version, >= specified version
 */
export declare function isCompatible(actual: Version, required: Version): boolean;
/**
 * Check tilde (~) compatibility
 * Same major.minor, >= specified version
 */
export declare function isApproximatelyEqual(actual: Version, required: Version): boolean;
/**
 * Increment version
 */
export declare function increment(version: Version, type: 'major' | 'minor' | 'patch' | 'prerelease'): Version;
/**
 * Find the maximum version in an array
 */
export declare function maxVersion(versions: (Version | string)[]): Version | null;
/**
 * Find the minimum version in an array
 */
export declare function minVersion(versions: (Version | string)[]): Version | null;
/**
 * Sort versions (ascending)
 */
export declare function sortVersions(versions: Version[]): Version[];
//# sourceMappingURL=semver.d.ts.map