@neuroequality/neuroadapt-ai
Version:
AI-powered accessibility personalization for neurodivergent users
187 lines (186 loc) • 5.05 kB
TypeScript
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