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