/** * @file Auto-Prioritized Hydration System * @description World-class hydration system for React applications. * * This module provides a complete solution for optimizing React hydration: * * ## Key Features * * - **Priority Queue System**: 5 levels (critical, high, normal, low, idle) * - **Visibility-Based Hydration**: Using IntersectionObserver * - **Interaction-Triggered Hydration**: Immediate hydration on user input * - **Idle-Time Background Hydration**: Using requestIdleCallback * - **Hydration Budget Management**: Never blocks main thread * - **Interaction Replay**: Captures and replays events during hydration * - **Progressive Hydration**: Partial hydration support * - **Performance Metrics**: Comprehensive telemetry * * ## Performance Targets * * - INP (Interaction to Next Paint): < 100ms * - TTI (Time to Interactive) reduction: 40% * - Zero main thread blocking during hydration * * ## Quick Start * * @example * ```tsx * // 1. Wrap your app with HydrationProvider * import { HydrationProvider } from '@/lib/hydration'; * * function App() { * return ( * * * * ); * } * * // 2. Wrap components with HydrationBoundary * import { HydrationBoundary } from '@/lib/hydration'; * * function HeroSection() { * return ( * * * * ); * } * * // 3. Use hooks to monitor and control hydration * import { useHydrationMetrics, useHydrationStatus } from '@/lib/hydration'; * * function Dashboard() { * const metrics = useHydrationMetrics(); * const heroStatus = useHydrationStatus('hero-section'); * * return ( *
*

Progress: {metrics.hydrationProgress.toFixed(0)}%

*

Hero status: {heroStatus.state}

*
* ); * } * ``` * * ## Architecture * * ``` * HydrationProvider * | * +-- HydrationScheduler (singleton) * | | * | +-- PriorityQueue * | +-- IntersectionObserver * | +-- InteractionReplayManager * | * +-- HydrationBoundary (multiple) * | * +-- Status tracking * +-- Placeholder rendering * +-- Event capture * ``` * * @module hydration */ export { type HydrationPriority, type HydrationTrigger, PRIORITY_WEIGHTS, type HydrationState, type HydrationStatus, createInitialHydrationStatus, type HydrationBoundaryId, type HydrationTask, type HydrationTaskMetadata, createBoundaryId, type HydrationBudget, type VisibilityConfig, type HydrationSchedulerConfig, type InteractionStrategy, DEFAULT_HYDRATION_BUDGET, DEFAULT_VISIBILITY_CONFIG, DEFAULT_SCHEDULER_CONFIG, type HydrationMetric, type HydrationMetricsSnapshot, type HydrationMetricsReporter, type ReplayableInteractionType, type CapturedInteraction, type InteractionReplayConfig, DEFAULT_REPLAY_CONFIG, type HydrationBoundaryProps, type HydrationProviderProps, type HydrationContextValue, type WithHydrationBoundaryOptions, type HydrationEventType, type HydrationEvent, type HydrationEventListener, type PartialHydrationConfig, mergeWithDefaults, isHydrationPriority, isHydrationTrigger, isHydrationState, } from './types'; export { HydrationProvider, useHydrationContext, useOptionalHydrationContext, HydrationContext, } from './HydrationProvider'; export { HydrationBoundary, withHydrationBoundary, LazyHydration, type LazyHydrationProps, } from './HydrationBoundary'; export { useHydration, useHasHydrationContext, type UseHydrationReturn, type UseHydrationOptions, useHydrationStatus, useIsHydrated, useWaitForHydration, type UseHydrationStatusReturn, type UseHydrationStatusOptions, useHydrationPriority, useAdaptiveHydrationPriority, PRIORITY_ORDER, PRIORITY_TO_LEVEL, LEVEL_TO_PRIORITY, type UseHydrationPriorityReturn, type UseHydrationPriorityOptions, type PriorityLevel, useDeferredHydration, useSimpleDeferredHydration, useIdleHydration, type UseDeferredHydrationReturn, type DeferredHydrationConfig, type DeferredHydrationContainerProps, useHydrationMetrics, useHydrationMetricValue, useHydrationProgress, useIsHydrationComplete, useTimeToFullHydration, useHydrationMetricsDebug, type UseHydrationMetricsReturn, type UseHydrationMetricsOptions, } from './hooks'; export { HydrationScheduler, getHydrationScheduler, resetHydrationScheduler, type SchedulerState, } from './hydration-scheduler'; export { HydrationPriorityQueue, createPriorityQueue, createPriorityQueueFrom, type PriorityQueueConfig, type PriorityQueueStats, } from './priority-queue'; export { InteractionReplayManager, getInteractionReplayManager, resetInteractionReplayManager, } from './interaction-replay'; export declare function initHydrationSystem(config?: Partial): () => void; /** * Get the current hydration metrics. * Convenience function for accessing metrics without hooks. * * @returns Current metrics snapshot * * @example * ```tsx * const metrics = getHydrationMetrics(); * console.log(`Hydrated: ${metrics.hydratedCount}/${metrics.totalBoundaries}`); * ``` */ export declare function getHydrationMetrics(): import('./types').HydrationMetricsSnapshot;