UNPKG

@neuroequality/neuroadapt-ai

Version:

AI-powered accessibility personalization for neurodivergent users

187 lines (186 loc) 5.05 kB
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