@neuroequality/neuroadapt-ai
Version:
AI-powered accessibility personalization for neurodivergent users
83 lines (82 loc) • 2.68 kB
TypeScript
import { EventEmitter } from 'eventemitter3';
import { UserInteraction, PredictionResult, AdaptationSuggestion, ModelState, FeatureVector, ModelMetrics } from '../types/common.js';
/**
* Events emitted by PredictionEngine
*/
export interface PredictionEngineEvents {
'prediction': (result: PredictionResult) => void;
'adaptation-suggested': (suggestion: AdaptationSuggestion) => void;
'model-updated': (state: ModelState) => void;
'training-complete': (metrics: ModelMetrics) => void;
'error': (error: Error) => void;
}
/**
* Configuration for prediction engine
*/
export interface PredictionEngineConfig {
modelPath?: string;
autoTrain?: boolean;
trainingInterval?: number;
minSamplesForTraining?: number;
maxTrainingData?: number;
learningRate?: number;
featureEngineering?: boolean;
enableOnlinelearning?: boolean;
}
/**
* PredictionEngine provides AI-powered adaptive learning for user preferences
*/
export declare class PredictionEngine extends EventEmitter<PredictionEngineEvents> {
private config;
private model;
private trainingData;
private interactions;
private featureConfig;
private modelState;
private trainingTimer;
constructor(config?: PredictionEngineConfig);
/**
* Record user interaction for learning
*/
recordInteraction(interaction: UserInteraction): void;
/**
* Predict preference adjustment based on current context
*/
predictPreference(currentPreferences: Record<string, unknown>, context?: Record<string, unknown>): Promise<PredictionResult<Record<string, unknown>>>;
/**
* Suggest adaptations based on current behavior
*/
suggestAdaptations(currentState: Record<string, unknown>, recentInteractions?: UserInteraction[]): Promise<AdaptationSuggestion[]>;
/**
* Add training data with feedback
*/
addTrainingData(input: FeatureVector, output: unknown, feedback?: number): void;
/**
* Train the model with current data
*/
trainModel(): void;
/**
* Get current model state
*/
getModelState(): ModelState;
/**
* Clear training data and reset model
*/
reset(): void;
/**
* Stop auto-training
*/
destroy(): void;
private startAutoTraining;
private extractFeatures;
private extractBehaviorFeatures;
private processInteractionForLearning;
private calculateConfidence;
private generateAdaptationSuggestions;
private generateReasoning;
private detectMotionSensitivity;
private detectCognitiveLoad;
private evaluateModel;
private getFeatureNames;
}
//# sourceMappingURL=engine.d.ts.map