/**
 * 🚀 PERFORMANCE FIX: Enhanced Monitoring System
 * Advanced real-time monitoring with predictive analytics, alerting, and dashboards
 *
 * Addresses beta testing feedback on performance monitoring gaps
 */
import { EventEmitter } from 'events';
import { PerformanceTracker } from './performance-tracker';
import { MemorySystem } from '../memory/memory-system';
export interface MonitoringConfig {
    realTimeEnabled: boolean;
    predictiveAnalyticsEnabled: boolean;
    alertingEnabled: boolean;
    dashboardEnabled: boolean;
    websocketPort: number;
    alertThresholds: AlertThresholds;
    retentionPeriods: RetentionPeriods;
}
export interface AlertThresholds {
    cpuUsage: number;
    memoryUsage: number;
    diskUsage: number;
    responseTime: number;
    errorRate: number;
    cacheHitRate: number;
    queueDepth: number;
}
export interface RetentionPeriods {
    realTimeMetrics: number;
    hourlyAggregates: number;
    dailyAggregates: number;
    weeklyAggregates: number;
}
export interface SystemHealth {
    overall: 'healthy' | 'warning' | 'critical' | 'unknown';
    components: {
        cpu: ComponentHealth;
        memory: ComponentHealth;
        disk: ComponentHealth;
        network: ComponentHealth;
        database: ComponentHealth;
        cache: ComponentHealth;
        api: ComponentHealth;
    };
    alerts: ActiveAlert[];
    recommendations: string[];
    predictedIssues: PredictedIssue[];
}
export interface ComponentHealth {
    status: 'healthy' | 'warning' | 'critical' | 'unknown';
    value: number;
    threshold: number;
    trend: 'improving' | 'stable' | 'degrading';
    lastUpdated: Date;
    details: string;
}
export interface ActiveAlert {
    id: string;
    severity: 'low' | 'medium' | 'high' | 'critical';
    component: string;
    message: string;
    timestamp: Date;
    acknowledged: boolean;
    count: number;
    firstSeen: Date;
}
export interface PredictedIssue {
    type: 'resource_exhaustion' | 'performance_degradation' | 'capacity_limit' | 'error_spike';
    component: string;
    description: string;
    probability: number;
    estimatedTime: Date;
    impact: 'low' | 'medium' | 'high' | 'critical';
    recommendations: string[];
}
export interface PerformanceTrend {
    metric: string;
    period: 'hour' | 'day' | 'week' | 'month';
    trend: 'improving' | 'stable' | 'degrading';
    percentageChange: number;
    currentValue: number;
    historicalAverage: number;
    volatility: number;
}
export interface ResourceForecast {
    resource: string;
    currentUsage: number;
    predictedUsage: number;
    timeHorizon: number;
    confidence: number;
    exhaustionDate?: Date;
    recommendations: string[];
}
export declare class EnhancedMonitoringSystem extends EventEmitter {
    private performanceTracker;
    private memory;
    private logger;
    private config;
    private websocketServer?;
    private httpServer?;
    private activeAlerts;
    private metricHistory;
    private systemHealth;
    private monitoringInterval?;
    private alertingInterval?;
    private predictionInterval?;
    private connectedClients;
    constructor(performanceTracker: PerformanceTracker, memory: MemorySystem, config?: Partial<MonitoringConfig>);
    /**
     * Start the enhanced monitoring system
     */
    start(): Promise<void>;
    /**
     * Get current system health status
     */
    getSystemHealth(): Promise<SystemHealth>;
    /**
     * Get performance trends for specified periods
     */
    getPerformanceTrends(periods?: string[]): Promise<PerformanceTrend[]>;
    /**
     * Get resource usage forecasts
     */
    getResourceForecasts(timeHorizonHours?: number): Promise<ResourceForecast[]>;
    /**
     * Generate comprehensive monitoring report
     */
    generateMonitoringReport(period?: 'hour' | 'day' | 'week' | 'month'): Promise<any>;
    /**
     * Acknowledge an alert
     */
    acknowledgeAlert(alertId: string, acknowledgedBy: string): Promise<boolean>;
    /**
     * Get active alerts
     */
    getActiveAlerts(): Promise<ActiveAlert[]>;
    /**
     * Private Methods
     */
    private initializeSystemHealth;
    private createMonitoringTables;
    private startRealTimeMonitoring;
    private startAlertingSystem;
    private startPredictiveAnalytics;
    private startDashboardServer;
    private setupPerformanceTrackerIntegration;
    private collectSystemMetrics;
    private storeMetric;
    private updateSystemHealth;
    private calculateComponentTrend;
    private checkAlertConditions;
    private createAlert;
    private cleanupOldAlerts;
    private runPredictiveAnalysis;
    private predictResourceExhaustion;
    private calculateTrend;
    private generateResourceForecast;
    private calculateGrowthRate;
    private calculatePerformanceScore;
    private generateSmartRecommendations;
    private getDataPointCount;
    private handleWebSocketConnection;
    private handleWebSocketMessage;
    private handleHttpRequest;
    private generateDashboardHtml;
    private broadcastToClients;
    /**
     * Shutdown the monitoring system
     */
    shutdown(): Promise<void>;
}
//# sourceMappingURL=enhanced-monitoring-system.d.ts.map