/** * 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(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): DependencyRegistry; //# sourceMappingURL=dependency-checker.d.ts.map