/**
 * Dependency Health Checker
 *
 * Evaluates the health of a plugin's dependencies.
 *
 * @since v1.66.0
 */
import { type HealthComponent, type HealthIssue } from './health-types.js';
/**
 * Dependency status
 */
export type DependencyStatus = 'satisfied' | 'missing_required' | 'missing_optional' | 'unhealthy' | 'conflicting' | 'unknown';
/**
 * Single dependency check result
 */
export interface DependencyCheckItem {
    /** Dependency plugin name */
    name: string;
    /** Whether it's a hard or soft dependency */
    type: 'hard' | 'soft';
    /** Whether the dependency is present */
    present: boolean;
    /** Health score of the dependency (if present) */
    healthScore?: number;
    /** Issues with this dependency */
    issues: string[];
}
/**
 * Dependency check result
 */
export interface DependencyCheckResult {
    /** All required (hard) dependencies */
    required: DependencyCheckItem[];
    /** All optional (soft) dependencies */
    optional: DependencyCheckItem[];
    /** Overall dependency status */
    status: DependencyStatus;
    /** Score (0-100) */
    score: number;
    /** Human-readable description */
    description: string;
    /** Missing required dependencies */
    missingRequired: string[];
    /** Missing optional dependencies */
    missingOptional: string[];
}
/**
 * Plugin registry for checking dependency presence
 */
export interface DependencyRegistry {
    /** Check if a plugin is installed */
    isInstalled: (name: string) => boolean;
    /** Get the health score of an installed plugin (optional) */
    getHealthScore?: (name: string) => number | undefined;
}
/**
 * Check if a dependency is satisfied
 */
export declare function checkDependency(name: string, type: 'hard' | 'soft', registry: DependencyRegistry): DependencyCheckItem;
/**
 * Check all dependencies for a plugin
 */
export declare function checkAllDependencies(hardDependencies: string[], softDependencies: string[], registry: DependencyRegistry): DependencyCheckResult;
/**
 * Calculate dependency score
 */
export declare function calculateDependencyScore(required: DependencyCheckItem[], optional: DependencyCheckItem[], missingRequired: string[], missingOptional: string[], unhealthyCount: number): number;
/**
 * Get dependency status description
 */
export declare function getDependencyDescription(status: DependencyStatus, missingRequired: string[], missingOptional: string[], unhealthyDeps: string[]): string;
/**
 * Check dependencies and return health component
 */
export declare function checkDependencyHealth(hardDependencies: string[], softDependencies: string[], registry: DependencyRegistry): HealthComponent;
/**
 * Generate health issues for dependency problems
 */
export declare function generateDependencyIssues(result: DependencyCheckResult, pluginName: string): HealthIssue[];
/**
 * Create a simple dependency registry from a list of installed plugins
 */
export declare function createSimpleDependencyRegistry(installedPlugins: string[], healthScores?: Record<string, number>): DependencyRegistry;
//# sourceMappingURL=dependency-checker.d.ts.map