UNPKG

@neuroequality/neuroadapt-ai

Version:

AI-powered accessibility personalization for neurodivergent users

168 lines (167 loc) 4.66 kB
import { EventEmitter } from 'eventemitter3'; import { UserInteraction, AnalyticsEvent } from '../types/common.js'; /** * Events emitted by BehaviorAnalytics */ export interface BehaviorAnalyticsEvents { 'pattern-detected': (pattern: BehaviorPattern) => void; 'anomaly-detected': (anomaly: BehaviorAnomaly) => void; 'insight-generated': (insight: BehaviorInsight) => void; 'data-collected': (event: AnalyticsEvent) => void; 'error': (error: Error) => void; } /** * Configuration for behavior analytics */ export interface BehaviorAnalyticsConfig { sessionTimeout?: number; maxSessionEvents?: number; enableRealTimeAnalysis?: boolean; patternDetectionThreshold?: number; anomalyDetectionSensitivity?: number; privacyMode?: boolean; bufferSize?: number; } /** * Detected behavior pattern */ export interface BehaviorPattern { id: string; type: 'navigation' | 'interaction' | 'preference' | 'temporal'; pattern: string; confidence: number; frequency: number; contexts: string[]; impact: 'positive' | 'negative' | 'neutral'; recommendations: string[]; } /** * Behavior anomaly detection */ export interface BehaviorAnomaly { id: string; type: 'sudden_change' | 'unusual_pattern' | 'performance_degradation' | 'accessibility_issue'; description: string; severity: 'low' | 'medium' | 'high' | 'critical'; affectedMetrics: string[]; timestamp: number; context: Record<string, unknown>; } /** * Generated behavioral insight */ export interface BehaviorInsight { id: string; category: 'usability' | 'accessibility' | 'performance' | 'engagement'; title: string; description: string; evidence: string[]; actionItems: string[]; priority: number; confidence: number; } /** * Interaction metrics */ interface InteractionMetrics { totalInteractions: number; interactionRate: number; avgTimeBetweenInteractions: number; dominantInteractionTypes: string[]; errorRate: number; completionRate: number; } /** * Engagement metrics */ interface EngagementMetrics { sessionDuration: number; bounceRate: number; pageViews: number; scrollDepth: number; clickThroughRate: number; taskCompletionRate: number; } /** * BehaviorAnalytics tracks and analyzes user behavior patterns for accessibility insights */ export declare class BehaviorAnalytics extends EventEmitter<BehaviorAnalyticsEvents> { private config; private currentSession; private sessions; private eventBuffer; private patternCache; private anomalyBaselines; private sessionTimeout; constructor(config?: BehaviorAnalyticsConfig); /** * Start a new analytics session */ startSession(sessionId?: string): string; /** * End current session */ endSession(): void; /** * Track user interaction */ trackInteraction(interaction: UserInteraction): void; /** * Track custom analytics event */ trackEvent(event: Partial<AnalyticsEvent>): void; /** * Track preference change */ trackPreferenceChange(preferences: Record<string, unknown>, context?: Record<string, unknown>): void; /** * Get interaction metrics for current session */ getSessionMetrics(): InteractionMetrics | null; /** * Get engagement metrics for current session */ getEngagementMetrics(): EngagementMetrics | null; /** * Analyze behavior patterns across sessions */ analyzeBehaviorPatterns(): BehaviorPattern[]; /** * Generate behavioral insights */ generateInsights(): BehaviorInsight[]; /** * Export analytics data */ exportData(options?: { format?: 'json' | 'csv'; includeInteractions?: boolean; }): string; /** * Clear all analytics data */ clearData(): void; /** * Clean up and stop analytics */ destroy(): void; private generateSessionId; private getViewportInfo; private resetSessionTimeout; private clearSessionTimeout; private calculateInteractionMetrics; private calculateEngagementMetrics; private detectRealTimePatterns; private analyzeSession; private detectNavigationPatterns; private detectInteractionPatterns; private detectTemporalPatterns; private generateAccessibilityInsights; private generateUsabilityInsights; private generatePerformanceInsights; private generateEngagementInsights; private generateSummaryStatistics; private convertToCSV; } export {}; //# sourceMappingURL=behavior-analytics.d.ts.map