/**
 * Metrics Collector
 *
 * Collects and normalizes performance metrics from various sources.
 *
 * @since v1.70.0
 */
import type { MetricsCollectionResult, PerformanceEvent, PerformanceMetrics, PluginMetrics, ServerType, SparkReportData, TimingsReportData } from './analytics-types.js';
/**
 * Collector options
 */
export interface CollectorOptions {
    serverId?: string;
    serverType?: ServerType;
    mcVersion?: string;
}
/**
 * Metrics collector service
 */
export declare class MetricsCollector {
    private serverId;
    private serverType;
    private mcVersion;
    constructor(options?: CollectorOptions);
    /**
     * Set server info
     */
    setServerInfo(serverId: string, serverType: ServerType, mcVersion: string): void;
    /**
     * Collect metrics from Spark report
     */
    collectFromSpark(sparkData: SparkReportData): MetricsCollectionResult;
    /**
     * Collect metrics from Timings report
     */
    collectFromTimings(timingsData: TimingsReportData): MetricsCollectionResult;
    /**
     * Collect metrics from manual input
     */
    collectManual(data: Partial<PerformanceMetrics>): MetricsCollectionResult;
    /**
     * Create empty metrics snapshot
     */
    createEmptyMetrics(): PerformanceMetrics;
    /**
     * Detect anomalies in metrics
     */
    detectAnomalies(metrics: PerformanceMetrics): PerformanceEvent[];
    /**
     * Calculate plugin rankings
     */
    rankPlugins(metrics: PerformanceMetrics): PluginMetrics[];
    /**
     * Get top resource consumers
     */
    getTopConsumers(metrics: PerformanceMetrics, count?: number): PluginMetrics[];
    /**
     * Calculate server health score (0-100)
     */
    calculateHealthScore(metrics: PerformanceMetrics): number;
    /**
     * Get health status string
     */
    getHealthStatus(score: number): 'excellent' | 'good' | 'fair' | 'poor' | 'critical';
    private parseSparkReport;
    private parseTimingsReport;
    private normalizeManualMetrics;
    private detectServerType;
    private createEmptyMemoryMetrics;
    private createEmptyCPUMetrics;
}
/**
 * Create a new metrics collector
 */
export declare function createMetricsCollector(options?: CollectorOptions): MetricsCollector;
/**
 * Get metrics collector singleton
 */
export declare function getMetricsCollector(): MetricsCollector;
/**
 * Reset metrics collector singleton
 */
export declare function resetMetricsCollector(): void;
//# sourceMappingURL=metrics-collector.d.ts.map