UNPKG

@neuroequality/neuroadapt-ai

Version:

AI-powered accessibility personalization for neurodivergent users

117 lines (116 loc) 3.38 kB
import { EventEmitter } from 'eventemitter3'; import { StreamChunk, AdaptationSuggestion } from '../types/common.js'; /** * Events emitted by ContentAdapter */ export interface ContentAdapterEvents { 'content-processed': (result: ProcessedContent) => void; 'adaptation-suggested': (suggestion: AdaptationSuggestion) => void; 'chunk-processed': (chunk: ProcessedChunk) => void; 'processing-complete': (summary: ProcessingSummary) => void; 'error': (error: Error) => void; } /** * Configuration for content adaptation */ export interface ContentAdapterConfig { chunkSize?: number; processingDelay?: number; enableRealTimeAnalysis?: boolean; adaptationThreshold?: number; maxConcurrentChunks?: number; retryAttempts?: number; } /** * Processed content result */ export interface ProcessedContent { id: string; originalContent: string; adaptedContent: string; adaptations: string[]; confidence: number; processingTime: number; metadata?: Record<string, unknown>; } /** * Processed chunk information */ export interface ProcessedChunk { id: string; chunkIndex: number; content: string; adaptations: string[]; confidence: number; timestamp: number; } /** * Processing summary */ export interface ProcessingSummary { totalChunks: number; processedChunks: number; failedChunks: number; totalAdaptations: number; averageConfidence: number; totalProcessingTime: number; suggestedImprovements: string[]; } /** * ContentAdapter provides real-time content adaptation and streaming processing */ export declare class ContentAdapter extends EventEmitter<ContentAdapterEvents> { private config; private processingQueue; private activeProcessing; private adaptationCache; private processingStats; constructor(config?: ContentAdapterConfig); /** * Process content with user preferences */ processContent(content: string, preferences: Record<string, unknown>, context?: Record<string, unknown>): Promise<ProcessedContent>; /** * Process streaming content chunks */ processStreamChunks(chunks: AsyncGenerator<StreamChunk, void, unknown>, preferences: Record<string, unknown>, context?: Record<string, unknown>): Promise<void>; /** * Add content to processing queue */ queueContent(content: string, preferences: Record<string, unknown>, context?: Record<string, unknown>): string; /** * Get processing statistics */ getProcessingStats(): ProcessingSummary; /** * Clear adaptation cache */ clearCache(): void; /** * Get cache information */ getCacheInfo(): { size: number; keys: string[]; }; /** * Stop processing and clean up */ destroy(): void; private generateContentId; private adaptContent; private applyHighContrastAdaptation; private applyMotionReductionAdaptation; private applyFontSizeAdaptation; private applyContentChunking; private applyLanguageSimplification; private detectAppliedAdaptations; private calculateConfidence; private shouldProcessBuffer; private processChunk; private startProcessingLoop; private processQueue; private processQueueItem; private createEmptyStats; } //# sourceMappingURL=content-adapter.d.ts.map