/**
 * 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 calculateCompatibilityScore(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<string>): 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