/**
 * Conflict Types
 *
 * Type definitions for plugin conflict detection.
 *
 * @since v1.21.0
 */
/**
 * Severity level of a conflict
 */
export type ConflictSeverity = 'error' | 'warning' | 'info';
/**
 * Type of conflict between plugins
 */
export type ConflictType = 'command' | 'resource' | 'overlap' | 'api' | 'exclusive';
/**
 * A known plugin conflict
 */
export interface PluginConflict {
    /** Unique identifier for the conflict */
    id: string;
    /** Plugin names involved (2 or more) */
    plugins: string[];
    /** Severity level */
    severity: ConflictSeverity;
    /** Type of conflict */
    type: ConflictType;
    /** Human-readable description */
    description: string;
    /** How to resolve the conflict */
    resolution?: string;
    /** Reference URLs for more information */
    links?: string[];
    /** Only affects certain Minecraft versions */
    minecraftVersions?: string[];
}
/**
 * A category of plugins where only one should be used
 */
export interface ConflictCategory {
    /** Category description */
    description: string;
    /** Whether only one plugin from this category should be used */
    mutualExclusive: boolean;
    /** Plugin names in this category */
    plugins: string[];
}
/**
 * The full conflict database structure
 */
export interface ConflictDatabase {
    /** Database version */
    version: string;
    /** List of known conflicts */
    conflicts: PluginConflict[];
    /** Plugin categories */
    categories: Record<string, ConflictCategory>;
}
/**
 * A detected conflict with context
 */
export interface DetectedConflict {
    /** The conflict definition */
    conflict: PluginConflict;
    /** Which conflicting plugins are installed */
    installedPlugins: string[];
}
/**
 * Summary of conflicts for a set of plugins
 */
export interface ConflictSummary {
    /** Total number of conflicts */
    totalCount: number;
    /** Number of error-level conflicts */
    errorCount: number;
    /** Number of warning-level conflicts */
    warningCount: number;
    /** Number of info-level conflicts */
    infoCount: number;
    /** Whether there are any serious conflicts */
    hasSerious: boolean;
}
//# sourceMappingURL=conflict-types.d.ts.map