UNPKG

@neuroequality/neuroadapt-ai

Version:

AI-powered accessibility personalization for neurodivergent users

152 lines (151 loc) 4.58 kB
import { EventEmitter } from 'eventemitter3'; import { Preferences } from '@neuroadapt/core'; export interface CognitiveLoadMetrics { cognitiveLoad: number; taskComplexity: number; memoryLoad: number; distractorImpact: number; } export interface SensoryData { audioSensitivity?: number; vibrationTolerance?: number; lightSensitivity?: number; temperaturePreference?: number; } export interface AdaptationPattern { id: string; userId: string; patterns: { visual: VisualPattern; cognitive: CognitivePattern; motor: MotorPattern; sensory: SensoryPattern; }; confidence: number; lastUpdated: Date; effectivenessScore: number; } export interface VisualPattern { preferredContrast: number; colorSensitivity: string[]; motionTolerance: number; fontSizePreference: number; brightnessAdaptation: number; } export interface CognitivePattern { processingSpeed: number; workingMemoryCapacity: number; attentionSpan: number; preferredInformationDensity: number; distractionSensitivity: number; } export interface MotorPattern { clickAccuracy: number; hoverDuration: number; keyboardSpeed: number; preferredTargetSize: number; gestureComplexity: number; } export interface SensoryPattern { soundSensitivity: number; vibrationTolerance: number; lightSensitivity: number; temperaturePreference: number; texturePreference: string[]; } export interface AdaptationEvent { type: 'visual_adjustment' | 'cognitive_load_change' | 'motor_assistance' | 'sensory_calibration'; data: any; confidence: number; timestamp: Date; } export interface MLModelConfig { modelType: 'neural_network' | 'decision_tree' | 'random_forest' | 'svm'; parameters: Record<string, any>; trainingDataSize: number; accuracy: number; lastTrained: Date; } /** * Advanced Adaptive Engine using Machine Learning for real-time personalization */ export declare class AdaptiveEngine extends EventEmitter { private config; private patterns; private mlModels; private realTimeMetrics; private adaptationHistory; private isLearning; constructor(config?: { learningRate: number; confidenceThreshold: number; maxPatternAge: number; realTimeAdaptation: boolean; }); /** * Initialize machine learning models for different adaptation types */ private initializeModels; /** * Analyze user behavior and generate adaptation patterns */ analyzeUserBehavior(userId: string, interactions: any[], preferences: Preferences, cognitiveMetrics: CognitiveLoadMetrics, sensoryData: SensoryData): Promise<AdaptationPattern>; /** * Analyze visual interaction patterns */ private analyzeVisualPatterns; /** * Analyze cognitive load patterns using ML */ private analyzeCognitivePatterns; /** * Analyze motor interaction patterns */ private analyzeMotorPatterns; /** * Analyze sensory adaptation patterns */ private analyzeSensoryPatterns; /** * Apply real-time adaptations based on patterns */ private applyRealTimeAdaptations; /** * Train ML models with new data */ trainModels(trainingData: any[]): Promise<void>; /** * Predict optimal adaptations for new user interactions */ predictAdaptations(userId: string, currentContext: any): Promise<AdaptationEvent[]>; /** * Get adaptation effectiveness metrics */ getAdaptationMetrics(userId: string): { totalAdaptations: number; averageConfidence: number; effectivenessScore: number; lastAdaptation: Date | null; }; private analyzeContrastPreferences; private analyzeColorSensitivity; private analyzeMotionTolerance; private analyzeFontPreferences; private analyzeBrightnessAdaptation; private predictProcessingSpeed; private assessWorkingMemoryCapacity; private calculateAttentionSpan; private optimizeInformationDensity; private assessDistractionSensitivity; private calculateClickAccuracy; private calculateOptimalHoverDuration; private calculateKeyboardSpeed; private calculateOptimalTargetSize; private assessGestureComplexity; private calculatePatternConfidence; private calculateEffectivenessScore; private simulateModelTraining; private runModelPrediction; } export default AdaptiveEngine; //# sourceMappingURL=adaptive-engine.d.ts.map