/** * Compatibility Matrix Service * * Builds and analyzes plugin-to-plugin compatibility. * * @since v1.66.0 */ import { type CompatibilityCheckConfig, type CompatibilityEntry, type CompatibilityMatrix, type CompatibilityMatrixSummary, type CompatibilityStatus, type ConflictResolution, type DependencyGraph, type KnownConflictEntry, type PluginConflict } from './compatibility-types.js'; /** * Plugin info for compatibility checking */ export interface PluginCompatInfo { name: string; version: string; hardDeps: string[]; softDeps: string[]; commands?: string[]; permissions?: string[]; apiProvides?: string[]; apiRequires?: string[]; } /** * Generate matrix key from two plugin names (alphabetically sorted) */ export declare function getMatrixKey(pluginA: string, pluginB: string): string; /** * Check if two plugins have a command conflict */ export declare function detectCommandConflicts(pluginA: PluginCompatInfo, pluginB: PluginCompatInfo): PluginConflict[]; /** * Check if two plugins have a permission conflict */ export declare function detectPermissionConflicts(pluginA: PluginCompatInfo, pluginB: PluginCompatInfo): PluginConflict[]; /** * Check if two plugins have an API conflict */ export declare function detectApiConflicts(pluginA: PluginCompatInfo, pluginB: PluginCompatInfo): PluginConflict[]; /** * Check for version mismatch conflicts based on dependencies */ export declare function detectVersionMismatch(pluginA: PluginCompatInfo, pluginB: PluginCompatInfo): PluginConflict[]; /** * Check against known conflict database */ export declare function checkKnownConflicts(pluginA: PluginCompatInfo, pluginB: PluginCompatInfo, knownConflicts: KnownConflictEntry[]): PluginConflict[]; /** * Calculate compatibility score from conflicts */ export declare function calculateMatrixCompatibilityScore(conflicts: PluginConflict[]): number; /** * Determine compatibility status from score and conflicts */ export declare function getCompatibilityStatus(score: number, conflicts: PluginConflict[]): CompatibilityStatus; /** * Build compatibility entry between two plugins */ export declare function buildCompatibilityEntry(pluginA: PluginCompatInfo, pluginB: PluginCompatInfo, knownConflicts: KnownConflictEntry[], config?: CompatibilityCheckConfig): CompatibilityEntry; /** * Build full compatibility matrix for a set of plugins */ export declare function buildCompatibilityMatrix(plugins: PluginCompatInfo[], knownConflicts?: KnownConflictEntry[], config?: CompatibilityCheckConfig): CompatibilityMatrix; /** * Get compatibility entry between two plugins */ export declare function getCompatibilityEntry(matrix: CompatibilityMatrix, pluginA: string, pluginB: string): CompatibilityEntry | undefined; /** * Get all conflicts for a specific plugin */ export declare function getPluginConflicts(matrix: CompatibilityMatrix, pluginName: string): PluginConflict[]; /** * Generate compatibility matrix summary */ export declare function generateMatrixSummary(matrix: CompatibilityMatrix): CompatibilityMatrixSummary; /** * Build dependency graph from plugins */ export declare function buildDependencyGraph(plugins: PluginCompatInfo[], installedPlugins: Set): DependencyGraph; /** * Generate conflict resolution suggestions */ export declare function generateResolutions(conflicts: PluginConflict[]): ConflictResolution[]; /** * Get risk level from conflicts */ export declare function assessRiskLevel(conflicts: PluginConflict[]): 'low' | 'medium' | 'high' | 'critical'; //# sourceMappingURL=compatibility-matrix.d.ts.map