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