/**
 * MC Version Compatibility Checker
 *
 * Evaluates plugin compatibility with the current Minecraft server version.
 *
 * @since v1.66.0
 */
import { type HealthCheckConfig, type HealthComponent } from './health-types.js';
/**
 * Minecraft version structure
 */
export interface McVersion {
    major: number;
    minor: number;
    patch: number;
    raw: string;
}
/**
 * Compatibility status
 */
export type CompatibilityStatus = 'compatible' | 'likely_compatible' | 'possibly_compatible' | 'outdated' | 'incompatible' | 'unknown';
/**
 * Compatibility check result
 */
export interface CompatibilityCheckResult {
    /** Current server MC version */
    serverVersion: string;
    /** Plugin's supported MC versions */
    supportedVersions: string[];
    /** Compatibility status */
    status: CompatibilityStatus;
    /** Score (0-100) */
    score: number;
    /** Human-readable description */
    description: string;
    /** Highest supported MC version by the plugin */
    highestSupported: string | null;
}
/**
 * Parse a Minecraft version string
 */
export declare function parseMcVersion(version: string): McVersion | null;
/**
 * Compare two MC versions
 * Returns: negative if a < b, positive if a > b, 0 if equal
 */
export declare function compareMcVersions(a: McVersion, b: McVersion): number;
/**
 * Calculate how many minor versions behind
 */
export declare function getMinorVersionsBehind(current: McVersion, supported: McVersion): number;
/**
 * Check if a version string matches or is within range
 */
export declare function versionMatches(serverVersion: McVersion, supportedVersion: string): boolean;
/**
 * Find the highest supported MC version from a list
 */
export declare function findHighestSupportedVersion(versions: string[]): McVersion | null;
/**
 * Determine compatibility status
 */
export declare function getCompatibilityStatus(serverVersion: McVersion, supportedVersions: string[], knownIncompatible?: boolean): CompatibilityStatus;
/**
 * Calculate compatibility score
 */
export declare function calculateCompatibilityScore(status: CompatibilityStatus, config?: HealthCheckConfig['compatibilityScoring']): number;
/**
 * Get compatibility description
 */
export declare function getCompatibilityDescription(serverVersion: string, status: CompatibilityStatus, highestSupported: McVersion | null): string;
/**
 * Check MC compatibility and return health component
 */
export declare function checkMcCompatibility(serverVersionStr: string, supportedVersions: string[], knownIncompatible?: boolean, config?: HealthCheckConfig['compatibilityScoring']): HealthComponent;
/**
 * Full compatibility check result
 */
export declare function checkCompatibility(serverVersionStr: string, supportedVersions: string[], knownIncompatible?: boolean, config?: HealthCheckConfig['compatibilityScoring']): CompatibilityCheckResult;
//# sourceMappingURL=compatibility-checker.d.ts.map