type MotionPreferenceOptions = { /** * Key to use for storing user preference in localStorage * @default 'reduced-motion' */ storageKey?: string; }; /** * Manages motion preferences across the application. * Handles 'prefers-reduced-motion' system preference, user overrides, and persistence. * User overrides are stored in localStorage, and always take precedence over system settings. */ export declare class MotionPreferenceManager { #private; constructor(options?: MotionPreferenceOptions); static getInstance(): MotionPreferenceManager; /** * @internal used for testing */ static resetInstance(): void; /** * Get current reduced motion preference * Prioritizes user override over system preference */ get reducedMotion(): boolean; /** * Get current reduced motion preference * Prioritizes user override over system preference * * shorthand for `MotionPreferenceManager.getInstance().reducedMotion` */ static get reducedMotion(): boolean; /** * Set user's motion preference * @param reduced - Whether motion should be reduced */ setReducedMotion(reduced: boolean): void; /** * Set user's motion preference * @param reduced - Whether motion should be reduced * * shorthand for `MotionPreferenceManager.getInstance().setReducedMotion` */ static setReducedMotion(reduced: boolean): void; /** * Reset to system preference */ resetToSystemPreference(): void; /** * Subscribe to preference changes * @param callback - Function to call when preference changes * @param options - Options object * @returns Cleanup function */ subscribe(callback: (reduce: boolean) => void, options?: { immediate?: boolean; signal?: AbortSignal; }): () => void; /** * Subscribe to preference changes * * shorthand for `MotionPreferenceManager.getInstance().subscribe` * * @param callback - Function to call when preference changes * @param options - Options object * @returns Cleanup function */ static subscribe(callback: (reduce: boolean) => void, options?: { immediate?: boolean; signal?: AbortSignal; }): () => void; destroy(): void; } export {};