/**
 * Skill Eligibility Module
 *
 * Checks if skills are eligible to run based on system requirements
 * such as available binaries, environment variables, and configuration.
 */
/**
 * Skill requirements specification
 */
export interface SkillRequirements {
    /** Required binaries (all must be present) */
    bins?: string[];
    /** Any of these binaries must be present */
    anyBins?: string[];
    /** Required environment variables */
    env?: string[];
    /** Required configuration files */
    configs?: string[];
    /** Required platform (linux, darwin, win32) */
    platform?: string | string[];
    /** Minimum Node.js version */
    nodeVersion?: string;
}
/**
 * Result of an eligibility check
 */
export interface EligibilityResult {
    /** Whether the skill is eligible */
    eligible: boolean;
    /** Reasons for ineligibility (empty if eligible) */
    reasons: string[];
    /** Missing binaries */
    missingBins?: string[];
    /** Missing environment variables */
    missingEnv?: string[];
    /** Missing configuration files */
    missingConfigs?: string[];
}
/**
 * Check if a binary is available in PATH
 */
export declare function isBinaryAvailable(name: string): boolean;
/**
 * Get the path of a binary
 */
export declare function getBinaryPath(name: string): string | undefined;
/**
 * Check multiple binaries at once
 */
export declare function checkBinaries(names: string[]): Map<string, boolean>;
/**
 * Clear the binary cache
 */
export declare function clearBinaryCache(): void;
/**
 * Check if an environment variable is set
 */
export declare function isEnvSet(name: string): boolean;
/**
 * Check multiple environment variables
 */
export declare function checkEnvVars(names: string[]): Map<string, boolean>;
/**
 * Check if a configuration file exists
 */
export declare function isConfigPresent(configPath: string): boolean;
/**
 * Check multiple configuration files
 */
export declare function checkConfigs(paths: string[]): Map<string, boolean>;
/**
 * Check if current platform matches requirements
 */
export declare function isPlatformSupported(required: string | string[]): boolean;
/**
 * Get current platform
 */
export declare function getCurrentPlatform(): string;
/**
 * Compare two versions
 */
export declare function compareVersions(a: string, b: string): number;
/**
 * Check if current Node.js version meets minimum requirement
 */
export declare function isNodeVersionSufficient(minVersion: string): boolean;
/**
 * Check skill eligibility based on requirements
 */
export declare function checkEligibility(requirements: SkillRequirements): EligibilityResult;
/**
 * Log eligibility check result
 */
export declare function logEligibilityResult(skillName: string, result: EligibilityResult): void;
/**
 * Parse requirements from skill frontmatter
 */
export declare function parseRequirements(frontmatterValue: string): SkillRequirements | null;
