/**
 * Resource Conflict Analyzer
 *
 * Detects conflicts in shared resources like config files, database tables,
 * scoreboards, boss bars, and network ports.
 *
 * @since v1.67.0
 */
import type { PluginCompatInfo } from '../../health/compatibility-matrix.js';
import type { PluginConflict } from '../../health/compatibility-types.js';
/**
 * Resource usage info extracted from plugin metadata
 */
export interface PluginResourceInfo extends PluginCompatInfo {
    /** Config file paths relative to plugin folder */
    configFiles?: string[];
    /** Database table names used */
    databaseTables?: string[];
    /** Scoreboard objective names */
    scoreboardObjectives?: string[];
    /** Boss bar keys */
    bossBarKeys?: string[];
    /** Network ports used */
    networkPorts?: number[];
    /** Placeholder namespaces (for PlaceholderAPI) */
    placeholderNamespaces?: string[];
    /** Custom data folder names */
    dataFolders?: string[];
}
/**
 * Known resource patterns that commonly cause conflicts
 */
export declare const KNOWN_RESOURCE_PATTERNS: {
    /** Common config file names that might conflict */
    commonConfigs: string[];
    /** Reserved scoreboard objectives */
    reservedScoreboards: string[];
    /** Common network ports */
    commonPorts: number[];
};
/**
 * Detect config file conflicts between two plugins
 */
export declare function detectConfigConflicts(pluginA: PluginResourceInfo, pluginB: PluginResourceInfo): PluginConflict[];
/**
 * Detect database table conflicts between two plugins
 */
export declare function detectDatabaseConflicts(pluginA: PluginResourceInfo, pluginB: PluginResourceInfo): PluginConflict[];
/**
 * Detect scoreboard conflicts between two plugins
 */
export declare function detectScoreboardConflicts(pluginA: PluginResourceInfo, pluginB: PluginResourceInfo): PluginConflict[];
/**
 * Detect boss bar key conflicts between two plugins
 */
export declare function detectBossBarConflicts(pluginA: PluginResourceInfo, pluginB: PluginResourceInfo): PluginConflict[];
/**
 * Detect network port conflicts between two plugins
 */
export declare function detectPortConflicts(pluginA: PluginResourceInfo, pluginB: PluginResourceInfo): PluginConflict[];
/**
 * Detect placeholder namespace conflicts between two plugins
 */
export declare function detectPlaceholderConflicts(pluginA: PluginResourceInfo, pluginB: PluginResourceInfo): PluginConflict[];
/**
 * Detect all resource conflicts between two plugins
 */
export declare function detectResourceConflicts(pluginA: PluginResourceInfo, pluginB: PluginResourceInfo): PluginConflict[];
/**
 * Summary of resource usage for a plugin
 */
export interface ResourceUsageSummary {
    pluginName: string;
    configFileCount: number;
    databaseTableCount: number;
    scoreboardCount: number;
    bossBarCount: number;
    portCount: number;
    placeholderCount: number;
    totalResources: number;
}
/**
 * Get resource usage summary for a plugin
 */
export declare function getResourceUsageSummary(plugin: PluginResourceInfo): ResourceUsageSummary;
//# sourceMappingURL=resource.d.ts.map