import { Response } from 'express';
import { Observable } from 'rxjs';
import { JobWatcherService } from '../../watchers/job/job-watcher.service';
import { CacheWatcherService } from '../../watchers/cache/cache-watcher.service';
import { AnalyticsService, AnalyticsData } from '../../core/services/analytics.service';
import { PerformanceCorrelationService } from '../../core/services/performance-correlation.service';
import { ExportReportingService } from '../../core/services/export-reporting.service';
export declare class ExportDataDto {
    format: 'json' | 'csv' | 'xlsx' | 'pdf';
    type: 'raw' | 'analytics' | 'performance' | 'custom';
    timeRange?: {
        start: string;
        end: string;
    };
    filters?: {
        watchers?: string[];
        components?: string[];
        severities?: string[];
        tags?: string[];
    };
    fields?: string[];
    limit?: number;
    includeMetadata?: boolean;
}
export declare class GenerateReportDto {
    type: 'performance' | 'error' | 'system' | 'custom';
    template?: string;
    title?: string;
    description?: string;
    timeRange: {
        start: string;
        end: string;
    };
    format: 'html' | 'pdf' | 'md';
    includeCharts?: boolean;
    includeRawData?: boolean;
}
export declare class Week7AnalyticsController {
    private readonly jobWatcherService;
    private readonly cacheWatcherService;
    private readonly analyticsService;
    private readonly performanceCorrelationService;
    private readonly exportReportingService;
    constructor(jobWatcherService: JobWatcherService, cacheWatcherService: CacheWatcherService, analyticsService: AnalyticsService, performanceCorrelationService: PerformanceCorrelationService, exportReportingService: ExportReportingService);
    getJobMetrics(): import("../../watchers/job/job-watcher.service").JobMetrics;
    getRecentJobs(limit?: number): import("../../watchers/job/job-watcher.service").JobContext[];
    getJobsByQueue(queueName: string, limit?: number): import("../../watchers/job/job-watcher.service").JobContext[];
    getQueueHealthByName(queueName: string): import("../../watchers/job/job-watcher.service").QueueHealth | import("../../watchers/job/job-watcher.service").QueueHealth[];
    getQueueHealth(): import("../../watchers/job/job-watcher.service").QueueHealth | import("../../watchers/job/job-watcher.service").QueueHealth[];
    getJobMetricsStream(): Observable<any>;
    getCacheMetrics(): import("../../watchers/cache/cache-watcher.service").CacheMetrics;
    getRecentCacheOperations(limit?: number): import("../../watchers/cache/cache-watcher.service").CacheContext[];
    getCacheHealthByInstance(instance: string): import("../../watchers/cache/cache-watcher.service").CacheHealth | import("../../watchers/cache/cache-watcher.service").CacheHealth[];
    getCacheHealth(): import("../../watchers/cache/cache-watcher.service").CacheHealth | import("../../watchers/cache/cache-watcher.service").CacheHealth[];
    getRedisInfoByInstance(instance: string): any;
    getRedisInfo(): any;
    getRedisHealth(): {
        instance: string;
        status: string;
        info: any;
    }[];
    getKeyspaceInfoByInstance(instance: string): Promise<any>;
    getKeyspaceInfo(): Promise<any>;
    getCacheMetricsStream(): Observable<any>;
    getAdvancedAnalytics(startDate?: string, endDate?: string): AnalyticsData | Promise<AnalyticsData>;
    getAdvancedAnalyticsStream(): Observable<AnalyticsData>;
    getPerformanceAnalytics(): {
        responseTimeDistribution: import("../../core/services/analytics.service").PerformanceDistribution;
        slowestEndpoints: import("../../core/services/analytics.service").EndpointMetrics[];
        resourceUsage: import("../../core/services/analytics.service").ResourceUsage;
        bottleneckAnalysis: import("../../core/services/analytics.service").BottleneckSummary[];
    };
    getErrorAnalytics(): {
        errorDistribution: import("../../core/services/analytics.service").ErrorDistribution;
        topErrors: import("../../core/services/analytics.service").ErrorSummary[];
        errorTrends: import("../../core/services/analytics.service").TimeSeries[];
        impactAnalysis: import("../../core/services/analytics.service").ErrorImpact[];
    };
    getUserAnalytics(): {
        activeUsers: import("../../core/services/analytics.service").UserMetrics[];
        sessionAnalysis: import("../../core/services/analytics.service").SessionAnalysis;
        geographicDistribution: import("../../core/services/analytics.service").GeographicData[];
        deviceAnalysis: import("../../core/services/analytics.service").DeviceAnalysis[];
    };
    getTrendAnalytics(): {
        trafficTrends: import("../../core/services/analytics.service").TimeSeries[];
        performanceTrends: import("../../core/services/analytics.service").TimeSeries[];
        errorTrends: import("../../core/services/analytics.service").TimeSeries[];
        predictions: import("../../core/services/analytics.service").PredictionData[];
    };
    getAlertsAndAnomalies(): {
        activeAlerts: import("../../core/services/analytics.service").AlertSummary[];
        alertTrends: import("../../core/services/analytics.service").TimeSeries[];
        anomalies: import("../../core/services/analytics.service").AnomalyDetection[];
    };
    getCorrelationMetrics(): import("../../core/services/performance-correlation.service").PerformanceMetrics;
    getRecentCorrelations(limit?: number): import("../../core/services/performance-correlation.service").CorrelationContext[];
    getCorrelationsByTraceId(traceId: string): import("../../core/services/performance-correlation.service").CorrelationContext;
    getBottlenecksByComponent(component: string, limit?: number): import("../../core/services/performance-correlation.service").BottleneckAnalysis[];
    getActiveTraces(): {
        traceId: string;
        watchers: string[];
        startTime: Date;
    }[];
    getCorrelationStream(): Observable<any>;
    exportData(exportDto: ExportDataDto, res?: Response): Promise<import("../../core/services/export-reporting.service").ExportResult>;
    generateReport(reportDto: GenerateReportDto, res?: Response): Promise<import("../../core/services/export-reporting.service").ReportResult>;
    getExportHistory(): Promise<{
        id: string;
        type: string;
        createdAt: Date;
        filePath: string;
    }[]>;
    getReportTemplates(): Promise<{
        id: string;
        name: string;
        type: string;
        sections: import("../../core/services/export-reporting.service").ReportSection[];
    }[]>;
    getSystemHealthOverview(): Promise<{
        timestamp: Date;
        jobs: {
            healthScore: number;
            healthStatus: "critical" | "healthy" | "warning";
            totalJobs: number;
            failureRate: number;
            averageExecutionTime: number;
        };
        cache: {
            healthScore: number;
            healthStatus: "critical" | "healthy" | "warning";
            hitRate: number;
            averageResponseTime: number;
            totalOperations: number;
        };
        performance: {
            averageResponseTime: number;
            p95ResponseTime: number;
            errorRate: number;
            totalRequests: number;
        };
        system: {
            totalRequests: number;
            totalErrors: number;
            activeUsers: number;
            throughput: number;
        };
    }>;
    getAllActiveAlerts(): Promise<{
        timestamp: Date;
        totalAlerts: number;
        alerts: {
            jobs: any[];
            cache: any[];
            performance: any[];
            system: any[];
        };
    }>;
    acknowledgeAlert(alertId: string): {
        success: boolean;
        alertId: string;
        acknowledgedAt: Date;
    };
    getDashboardData(): Promise<{
        timestamp: Date;
        jobs: {
            metrics: import("../../watchers/job/job-watcher.service").JobMetrics;
            recentJobs: import("../../watchers/job/job-watcher.service").JobContext[];
            queueHealth: import("../../watchers/job/job-watcher.service").QueueHealth | import("../../watchers/job/job-watcher.service").QueueHealth[];
        };
        cache: {
            metrics: import("../../watchers/cache/cache-watcher.service").CacheMetrics;
            recentOperations: import("../../watchers/cache/cache-watcher.service").CacheContext[];
            health: import("../../watchers/cache/cache-watcher.service").CacheHealth | import("../../watchers/cache/cache-watcher.service").CacheHealth[];
            redisHealth: {
                instance: string;
                status: string;
                info: any;
            }[];
        };
        analytics: {
            overview: {
                totalRequests: number;
                totalErrors: number;
                totalQueries: number;
                totalCacheOps: number;
                totalJobs: number;
                averageResponseTime: number;
                errorRate: number;
                throughput: number;
                activeUsers: number;
                peakConcurrency: number;
            };
            performance: {
                responseTimeDistribution: import("../../core/services/analytics.service").PerformanceDistribution;
                slowestEndpoints: import("../../core/services/analytics.service").EndpointMetrics[];
                resourceUsage: import("../../core/services/analytics.service").ResourceUsage;
                bottleneckAnalysis: import("../../core/services/analytics.service").BottleneckSummary[];
            };
            trends: {
                trafficTrends: import("../../core/services/analytics.service").TimeSeries[];
                performanceTrends: import("../../core/services/analytics.service").TimeSeries[];
                errorTrends: import("../../core/services/analytics.service").TimeSeries[];
                predictions: import("../../core/services/analytics.service").PredictionData[];
            };
            alerts: {
                activeAlerts: import("../../core/services/analytics.service").AlertSummary[];
                alertTrends: import("../../core/services/analytics.service").TimeSeries[];
                anomalies: import("../../core/services/analytics.service").AnomalyDetection[];
            };
        };
        correlation: {
            metrics: import("../../core/services/performance-correlation.service").PerformanceMetrics;
            recentCorrelations: import("../../core/services/performance-correlation.service").CorrelationContext[];
            activeTraces: {
                traceId: string;
                watchers: string[];
                startTime: Date;
            }[];
        };
    }>;
}
