UNPKG

@neuroequality/neuroadapt-core

Version:

Core sensory, cognitive, and preference management for NeuroAdapt SDK

76 lines (75 loc) 2.35 kB
import { EventEmitter } from 'eventemitter3'; import { SensoryPreferences } from '../preferences/schemas.js'; /** * Events emitted by VisualAdapter */ export interface VisualAdapterEvents { 'adaptation-applied': (type: string, details: Record<string, unknown>) => void; 'adaptation-removed': (type: string) => void; 'error': (error: Error) => void; } /** * Configuration options for VisualAdapter */ export interface VisualAdapterOptions { targetElement?: HTMLElement; autoApply?: boolean; prefix?: string; } /** * Color vision filter types for accessibility */ export type ColorVisionFilter = 'none' | 'protanopia' | 'deuteranopia' | 'tritanopia'; /** * Visual adaptation types that can be applied */ export interface VisualAdaptations { motionReduction: boolean; highContrast: boolean; colorVisionFilter: ColorVisionFilter; fontSize: number; reducedFlashing: boolean; darkMode: boolean; } /** * VisualAdapter applies real-time visual adaptations to the DOM * based on user sensory preferences */ export declare class VisualAdapter extends EventEmitter<VisualAdapterEvents> { private readonly targetElement; private readonly prefix; private readonly appliedAdaptations; private styleElement?; private currentAdaptations; constructor(preferences: SensoryPreferences, options?: VisualAdapterOptions); /** * Apply visual adaptations based on sensory preferences */ applyAdaptations(preferences: SensoryPreferences): void; /** * Remove all applied visual adaptations */ disable(): void; /** * Get currently applied adaptations */ getCurrentAdaptations(): Readonly<Partial<VisualAdaptations>>; /** * Check if a specific adaptation is currently applied */ isAdaptationApplied(adaptation: keyof VisualAdaptations): boolean; private initializeStyleElement; private applyMotionReduction; private removeMotionReduction; private applyHighContrast; private removeHighContrast; private applyColorVisionFilter; private removeColorVisionFilter; private applyFontSizeScaling; private removeFontSizeScaling; private applyReducedFlashing; private removeReducedFlashing; private applyDarkMode; private removeDarkMode; } //# sourceMappingURL=visual-adapter.d.ts.map