/** * @file Smart Defaults System * @description PhD-level intelligent default configuration that adapts to device * capabilities, network conditions, and user preferences for optimal out-of-box experience. * * Features: * - Device-aware configurations * - Network-adaptive settings * - User preference detection * - Progressive capability enhancement * - Memory and CPU-aware defaults */ /** * Device tier for capability-based defaults */ export type DeviceTier = 'high' | 'medium' | 'low'; /** * Network tier for bandwidth-based defaults */ export type NetworkTier = 'fast' | 'moderate' | 'slow' | 'offline'; /** * User preference categories */ export interface UserPreferences { /** Prefers reduced motion */ reducedMotion: boolean; /** Prefers dark mode */ darkMode: boolean; /** Prefers high contrast */ highContrast: boolean; /** Data saver enabled */ dataSaver: boolean; /** Prefers reduced transparency */ reducedTransparency: boolean; /** Language preference */ language: string; } /** * Animation defaults */ export interface AnimationDefaults { /** Duration multiplier */ durationMultiplier: number; /** Enable animations */ enabled: boolean; /** Easing function */ easing: string; /** Max concurrent animations */ maxConcurrent: number; /** Use GPU acceleration */ useGPU: boolean; } /** * Image loading defaults */ export interface ImageDefaults { /** Enable lazy loading */ lazyLoad: boolean; /** Image quality (0-100) */ quality: number; /** Enable blur-up placeholders */ blurUp: boolean; /** Enable WebP format */ webp: boolean; /** Enable AVIF format */ avif: boolean; /** Max width */ maxWidth: number; } /** * Data fetching defaults */ export interface FetchDefaults { /** Stale time in ms */ staleTime: number; /** Cache time in ms */ cacheTime: number; /** Retry count */ retryCount: number; /** Retry delay in ms */ retryDelay: number; /** Enable background refetch */ backgroundRefetch: boolean; /** Request timeout in ms */ timeout: number; } /** * Performance defaults */ export interface PerformanceDefaults { /** Enable performance monitoring */ monitoring: boolean; /** Enable prefetching */ prefetch: boolean; /** Prefetch distance (routes ahead) */ prefetchDistance: number; /** Enable code splitting */ codeSplitting: boolean; /** Virtual list threshold */ virtualListThreshold: number; /** Debounce delay in ms */ debounceDelay: number; /** Throttle delay in ms */ throttleDelay: number; } /** * Rendering defaults */ export interface RenderDefaults { /** Batch updates */ batchUpdates: boolean; /** Defer non-critical renders */ deferNonCritical: boolean; /** Use concurrent mode features */ concurrent: boolean; /** Suspense timeout in ms */ suspenseTimeout: number; /** Enable render tracking */ trackRenders: boolean; } /** * Complete smart defaults */ export interface SmartDefaults { /** Device tier */ deviceTier: DeviceTier; /** Network tier */ networkTier: NetworkTier; /** User preferences */ preferences: UserPreferences; /** Animation defaults */ animation: AnimationDefaults; /** Image defaults */ image: ImageDefaults; /** Fetch defaults */ fetch: FetchDefaults; /** Performance defaults */ performance: PerformanceDefaults; /** Render defaults */ render: RenderDefaults; } /** * Override configuration */ export interface SmartDefaultsOverrides { animation?: Partial; image?: Partial; fetch?: Partial; performance?: Partial; render?: Partial; } /** * Detect device tier based on hardware capabilities */ export declare function detectDeviceTier(): DeviceTier; /** * Detect network tier based on connection */ export declare function detectNetworkTier(): NetworkTier; /** * Detect user preferences */ export declare function detectUserPreferences(): UserPreferences; /** * Manages smart defaults */ export declare class SmartDefaultsManager { private static instance; private defaults; private overrides; private updateCallbacks; constructor(); /** * Get singleton instance */ static getInstance(): SmartDefaultsManager; /** * Reset singleton */ static reset(): void; /** * Recalculate defaults */ recalculate(): void; /** * Get current defaults with overrides */ getDefaults(): SmartDefaults; /** * Set overrides */ setOverrides(overrides: SmartDefaultsOverrides): void; /** * Clear overrides */ clearOverrides(): void; /** * Subscribe to updates */ subscribe(callback: (defaults: SmartDefaults) => void): () => void; /** * Calculate all defaults */ private calculateDefaults; /** * Setup listeners for changes */ private setupListeners; /** * Notify subscribers */ private notifyUpdate; } /** * Hook for accessing smart defaults */ export declare function useSmartDefaults(overrides?: SmartDefaultsOverrides): SmartDefaults; /** * Hook for specific default category */ export declare function useAnimationDefaults(): AnimationDefaults; export declare function useImageDefaults(): ImageDefaults; export declare function useFetchDefaults(): FetchDefaults; export declare function usePerformanceDefaults(): PerformanceDefaults; export declare function useRenderDefaults(): RenderDefaults; /** * Hook for conditional feature based on defaults */ export declare function useConditionalFeature(featureCheck: (defaults: SmartDefaults) => boolean): boolean; /** * Get smart defaults manager */ export declare function getSmartDefaults(): SmartDefaults; /** * Set smart defaults overrides */ export declare function setSmartDefaultsOverrides(overrides: SmartDefaultsOverrides): void; /** * Reset smart defaults */ export declare function resetSmartDefaults(): void; declare const _default: { SmartDefaultsManager: typeof SmartDefaultsManager; detectDeviceTier: typeof detectDeviceTier; detectNetworkTier: typeof detectNetworkTier; detectUserPreferences: typeof detectUserPreferences; getSmartDefaults: typeof getSmartDefaults; setSmartDefaultsOverrides: typeof setSmartDefaultsOverrides; resetSmartDefaults: typeof resetSmartDefaults; useSmartDefaults: typeof useSmartDefaults; useAnimationDefaults: typeof useAnimationDefaults; useImageDefaults: typeof useImageDefaults; useFetchDefaults: typeof useFetchDefaults; usePerformanceDefaults: typeof usePerformanceDefaults; useRenderDefaults: typeof useRenderDefaults; useConditionalFeature: typeof useConditionalFeature; }; export default _default;