import { EventEmitter } from 'eventemitter3';

export interface AccessibilityMetrics {
    totalUsers: number;
    activeUsers: number;
    usersWithAdaptations: number;
    adaptationUsageRate: number;
    averageSessionDuration: number;
    mostUsedAdaptations: string[];
    complianceScore: number;
}
export interface UsageMetrics {
    dailyActiveUsers: number[];
    weeklyActiveUsers: number[];
    monthlyActiveUsers: number[];
    featureUsage: Record<string, number>;
    deviceDistribution: Record<string, number>;
    geographicDistribution: Record<string, number>;
}
export interface ComplianceMetrics {
    wcagCompliance: {
        levelA: number;
        levelAA: number;
        levelAAA: number;
    };
    adaptationCoverage: {
        visual: number;
        cognitive: number;
        motor: number;
        audio: number;
    };
    userSatisfaction: number;
    supportTickets: number;
    accessibilityIncidents: number;
}
export interface PerformanceMetrics {
    averageLoadTime: number;
    adaptationResponseTime: number;
    systemUptime: number;
    errorRate: number;
    userRetention: number;
}
export interface DashboardWidget {
    id: string;
    title: string;
    type: 'chart' | 'metric' | 'table' | 'heatmap' | 'timeline';
    size: 'small' | 'medium' | 'large' | 'xlarge';
    data: any;
    config: WidgetConfig;
    refreshInterval?: number;
}
export interface WidgetConfig {
    chartType?: 'line' | 'bar' | 'pie' | 'donut' | 'area' | 'scatter';
    timeRange?: '1h' | '24h' | '7d' | '30d' | '90d' | '1y';
    groupBy?: string;
    filters?: Record<string, any>;
    showLegend?: boolean;
    showTooltips?: boolean;
    colorScheme?: string[];
}
export interface DashboardReport {
    id: string;
    title: string;
    description: string;
    generatedAt: Date;
    timeRange: {
        start: Date;
        end: Date;
    };
    sections: ReportSection[];
    recommendations: string[];
    compliance: ComplianceMetrics;
}
export interface ReportSection {
    title: string;
    summary: string;
    metrics: Record<string, number>;
    insights: string[];
    visualizations: DashboardWidget[];
}
export interface AlertRule {
    id: string;
    name: string;
    description: string;
    metric: string;
    condition: 'above' | 'below' | 'equals' | 'not_equals';
    threshold: number;
    enabled: boolean;
    recipients: string[];
}
/**
 * Enterprise Analytics Dashboard Manager
 */
export declare class AnalyticsDashboard extends EventEmitter {
    private config;
    private widgets;
    private alerts;
    private metricsHistory;
    constructor(config?: {
        retentionDays: number;
        autoRefresh: boolean;
        refreshInterval: number;
        alertingEnabled: boolean;
        exportFormats: string[];
    });
    /**
     * Get current accessibility metrics
     */
    getAccessibilityMetrics(): Promise<AccessibilityMetrics>;
    /**
     * Get usage analytics
     */
    getUsageMetrics(timeRange?: string): Promise<UsageMetrics>;
    /**
     * Get compliance metrics
     */
    getComplianceMetrics(): Promise<ComplianceMetrics>;
    /**
     * Get performance metrics
     */
    getPerformanceMetrics(): Promise<PerformanceMetrics>;
    /**
     * Create custom dashboard widget
     */
    createWidget(widget: DashboardWidget): void;
    /**
     * Update existing widget
     */
    updateWidget(widgetId: string, updates: Partial<DashboardWidget>): void;
    /**
     * Remove widget
     */
    removeWidget(widgetId: string): void;
    /**
     * Get all dashboard widgets
     */
    getWidgets(): DashboardWidget[];
    /**
     * Generate comprehensive accessibility report
     */
    generateReport(title: string, timeRange: {
        start: Date;
        end: Date;
    }, includeRecommendations?: boolean): Promise<DashboardReport>;
    /**
     * Export dashboard data
     */
    exportData(format: 'json' | 'csv' | 'pdf', timeRange?: {
        start: Date;
        end: Date;
    }): Promise<string | Buffer>;
    /**
     * Create alert rule
     */
    createAlert(alert: AlertRule): void;
    /**
     * Check alert conditions and trigger notifications
     */
    checkAlerts(): Promise<void>;
    /**
     * Get real-time dashboard data
     */
    getDashboardData(): Promise<{
        accessibility: AccessibilityMetrics;
        usage: UsageMetrics;
        compliance: ComplianceMetrics;
        performance: PerformanceMetrics;
        widgets: DashboardWidget[];
    }>;
    private initializeDefaultWidgets;
    private initializeDefaultAlerts;
    private startAutoRefresh;
    private getTimeRangeDays;
    private createUsageChart;
    private createComplianceChart;
    private createFeatureUsageChart;
    private generateRecommendations;
    private aggregateExportData;
    private convertToCSV;
    private generatePDF;
    private getMetricValue;
    private evaluateAlertCondition;
    private triggerAlert;
    private cleanupMetricsHistory;
}
export default AnalyticsDashboard;
//# sourceMappingURL=analytics-dashboard.d.ts.map