/**
 * Optimizer
 *
 * Performance optimization recommendation engine.
 *
 * @since v1.70.5
 */
import type { OptimizationRecommendation, PerformanceMetrics, PluginMetrics } from './analytics-types.js';
/**
 * Recommendation category
 */
export type RecommendationCategory = 'plugin' | 'memory' | 'server' | 'configuration' | 'hardware';
/**
 * Recommendation priority
 */
export type RecommendationPriority = 'critical' | 'high' | 'medium' | 'low';
/**
 * Known plugin optimizations
 */
interface PluginOptimization {
    pluginName: string;
    patterns: string[];
    recommendations: Array<{
        condition: (plugin: PluginMetrics, metrics: PerformanceMetrics) => boolean;
        recommendation: Omit<OptimizationRecommendation, 'id' | 'createdAt'>;
    }>;
}
/**
 * Optimizer class
 */
export declare class Optimizer {
    private customOptimizations;
    /**
     * Analyze metrics and generate recommendations
     */
    analyze(metrics: PerformanceMetrics): OptimizationRecommendation[];
    /**
     * Analyze server metrics
     */
    private analyzeServerMetrics;
    /**
     * Analyze memory usage
     */
    private analyzeMemory;
    /**
     * Analyze plugin performance
     */
    private analyzePlugins;
    /**
     * Sort recommendations by priority
     */
    private sortByPriority;
    /**
     * Add custom plugin optimization
     */
    addCustomOptimization(optimization: PluginOptimization): void;
    /**
     * Get estimated improvement
     */
    getEstimatedImprovement(recommendations: OptimizationRecommendation[]): {
        tpsImprovement: string;
        msptReduction: string;
        count: {
            critical: number;
            high: number;
            medium: number;
            low: number;
        };
    };
    /**
     * Filter recommendations by priority
     */
    filterByPriority(recommendations: OptimizationRecommendation[], minPriority: RecommendationPriority): OptimizationRecommendation[];
    /**
     * Filter recommendations by category
     */
    filterByCategory(recommendations: OptimizationRecommendation[], category: RecommendationCategory): OptimizationRecommendation[];
}
/**
 * Create optimizer instance
 */
export declare function createOptimizer(): Optimizer;
/**
 * Get optimizer singleton
 */
export declare function getOptimizer(): Optimizer;
/**
 * Reset optimizer singleton
 */
export declare function resetOptimizer(): void;
export {};
//# sourceMappingURL=optimizer.d.ts.map