/** * @file Performance Module Index * @description Comprehensive exports for the performance monitoring and optimization system. * * This module provides a complete performance infrastructure including: * * 1. **Core Web Vitals Collection** - LCP, INP, CLS, FCP, TTFB tracking * 2. **Performance Observatory** - Real-time dashboard and monitoring * 3. **Performance Monitor** - Long tasks, memory, frame rate, resources * 4. **Performance Budgets** - Configurable limits with automatic degradation * 5. **Render Tracker** - Component render time and re-render detection * 6. **Network Performance** - Request timing, bandwidth, quality metrics * 7. **Predictive Prefetch** - AI-driven navigation prediction * 8. **Performance Hooks** - React hooks for performance awareness * * Core Web Vitals Targets: * - LCP: < 2500ms (Largest Contentful Paint) * - INP: < 200ms (Interaction to Next Paint) * - CLS: < 0.1 (Cumulative Layout Shift) * - FCP: < 1800ms (First Contentful Paint) * - TTFB: < 800ms (Time to First Byte) * * @example * ```typescript * import { * // Initialization * initPerformanceMonitoring, * startPerformanceMonitoring, * * // Core monitors * PerformanceMonitor, * PerformanceBudgetManager, * RenderTracker, * NetworkPerformanceAnalyzer, * * // React integration * PerformanceProvider, * PerformanceObservatory, * usePerformanceBudget, * useRenderMetrics, * useLongTaskDetector, * useMemoryPressure, * useNetworkQuality, * } from '@/lib/performance'; * ``` */ export { VitalsCollector, getVitalsCollector, initVitals, DEFAULT_BUDGETS, formatMetricValue, getRatingColor, getMetricDescription, getMetricTarget, calculateRating, calculateOverallScore, ratingToScore, scoreToRating, type VitalMetricName, type PerformanceRating, type VitalMetricEntry, type VitalsSnapshot, type PerformanceBudget, type BudgetViolation, type VitalsReporter, type BudgetViolationHandler, type VitalsCollectorConfig, } from './vitals'; export { PerformanceProvider, PerformanceObservatoryContext, usePerformanceObservatory, PerformanceObservatory, type PerformanceProviderProps, type PerformanceObservatoryProps, type PerformanceObservatoryContextValue, type ResourceStats, type LongTaskEntry as ObservatoryLongTaskEntry, } from './PerformanceObservatory'; export { PerformanceMonitor, getPerformanceMonitor, startPerformanceMonitoring, stopPerformanceMonitoring, type PerformanceEventType, type LongTaskAttribution, type FrameTimingEntry, type MemorySnapshot as MonitorMemorySnapshot, type SlowResourceEntry, type PerformanceMetrics, type PerformanceEventCallback, type PerformanceMonitorOptions, } from './performance-monitor'; export { PerformanceBudgetManager, getBudgetManager, resetBudgetManager, formatBudgetValue, type BudgetThreshold, type DegradationStrategy, type ViolationSeverity, type BudgetViolationRecord, type BudgetMetricEntry, type BudgetTrend, type BudgetStatusSummary, type DegradationState, type BudgetManagerConfig, } from './performance-budgets'; export { RenderTracker, getRenderTracker, trackRender, trackInteraction, withRenderTracking, type RenderPhase, type RenderReason, type RenderEntry, type ComponentRenderStats, type RenderWaterfallEntry, type RenderInteraction, type RenderTrackerConfig, } from './render-tracker'; export { NetworkPerformanceAnalyzer, getNetworkAnalyzer, getNetworkQuality as getNetworkQualityMetrics, isSlowConnection, isDataSaverEnabled, getAdaptiveLoadingStrategy, type ConnectionType, type EffectiveConnectionType, type RequestTiming, type ServerTimingEntry, type NetworkQuality, type BandwidthMeasurement, type RequestPriority, type PriorityRecommendation, type NetworkStats, type NetworkAnalyzerConfig, } from './network-performance'; export { PredictivePrefetchEngine, getPredictivePrefetchEngine, createNavigationListener, type NavigationEvent, type PrefetchableRoute, type RoutePrediction, type PredictivePrefetchConfig, type UsePredictivePrefetchOptions, } from './PredictivePrefetch'; export { usePredictivePrefetch, PredictiveLink, type UsePredictivePrefetchReturn, type PredictiveLinkProps, } from './usePredictivePrefetch'; export { usePerformanceBudget, useBudgetStatus, useDegradedMode, useBudgetConditional, useRenderMetrics, useRenderPhaseMetrics, useRenderProfiler, useWastedRenderDetector, useLongTaskDetector, useDeferredRender, useBlockingTimeTracker, useYieldToMain, useMemoryPressure, useMemoryCleanup, useMemoryAwareCache, useComponentMemoryImpact, useNetworkQuality, useAdaptiveImageQuality, useNetworkConditional, useNetworkAwareLazyLoad, useRequestPerformance, useNetworkStatusIndicator, usePreconnect, usePerformanceAwareness, useAdaptiveRender, type UsePerformanceBudgetOptions, type UsePerformanceBudgetReturn, type BudgetStatus, type UseRenderMetricsOptions, type UseRenderMetricsReturn, type RenderMetrics, type UseLongTaskDetectorOptions, type UseLongTaskDetectorReturn, type LongTaskStats, type UseMemoryPressureOptions, type UseMemoryPressureReturn, type MemoryPressureLevel, type MemoryTrend, type UseNetworkQualityOptions, type UseNetworkQualityReturn, type AdaptiveLoadingStrategy, } from './hooks'; /** * Initialize performance monitoring with sensible defaults. * Call this once at app startup. * * @example * ```tsx * // In main.tsx or App.tsx * import { initPerformanceMonitoring } from '@/lib/performance'; * * const cleanup = await initPerformanceMonitoring({ * debug: import.meta.env.DEV, * reportToAnalytics: import.meta.env.PROD, * }); * ``` */ export declare function initPerformanceMonitoring(options?: { debug?: boolean; reportToAnalytics?: boolean; analyticsEndpoint?: string; sampleRate?: number; onVitalMetric?: (metric: import('./vitals').VitalMetricEntry) => void; onBudgetViolation?: (violation: import('./performance-budgets').BudgetViolationRecord) => void; onLongTask?: (task: import('./performance-monitor').LongTaskEntry) => void; onMemoryPressure?: (pressure: 'warning' | 'critical') => void; }): Promise<() => void>; export { usePerformanceMonitor } from '../hooks/usePerformanceMonitor'; export type { PerformanceMetrics as UsePerformanceMonitorMetrics, PerformanceThresholds, UsePerformanceMonitorOptions, } from '../hooks/usePerformanceMonitor'; export { isMemoryApiSupported, getPerformanceMemory, calculateMemoryUsagePercent, getMemoryPressureLevel, type PerformanceMemoryInfo, type PerformanceWithMemory, } from './utils'; export { performanceConfig, getPerformanceConfig, meetsVitalThreshold, getNetworkTier, calculateBudgetUsage, formatBytes, formatDuration, VITAL_THRESHOLDS, BUNDLE_BUDGET, RUNTIME_BUDGET, LONG_TASK_CONFIG, MEMORY_CONFIG, NETWORK_TIERS, RENDER_CONFIG, MONITORING_CONFIG, type PerformanceConfig, type VitalMetricThreshold, type BundleBudget, type RuntimeBudget, type LongTaskConfig, type MemoryConfig, type NetworkTierConfig, type RenderConfig, type MonitoringConfig, } from '../../config/performance.config'; export { PerformanceProfiler, getPerformanceProfiler, resetPerformanceProfiler, createProfilerCallback, RenderBatchManager, shallowEqual, deepEqual, createSelector, memoizeWithLRU, calculateVirtualListRange, createStableKeyGenerator, configureRenderTracking, getRenderInfo, getAllRenderInfo, clearRenderTracking, getSlowComponents, MemoryMonitor, ObjectPool, MemoryAwareCache, CleanupOrchestrator, WeakRefManager, MemoryLeakDetector, getMemoryMonitor, getCleanupOrchestrator, BundleAnalyzer, getBundleAnalyzer, resetBundleAnalyzer, createTrackedImport, checkBundleBudget, CriticalPathAnalyzer, getCriticalPathAnalyzer, generateCriticalCSSHints, shouldPreload, IdleScheduler, getIdleScheduler, resetIdleScheduler, runWhenIdle, deferToIdle, createYieldingIterator, processInIdleChunks, debounceToIdle, initAdvancedPerformance, type ProfilerConfig, type RenderTimingEntry, type FrameRateSample, type MemorySample, type PerformanceMark, type PerformanceMeasure, type PerformanceSnapshot, type PerformanceSummary, type ProfilerEventType, type ProfilerEventListener, type RenderPriority, type RenderBatchConfig, type RenderStats, type EqualityFn, type StateUpdater, type VirtualListConfig, type VirtualListRange, type RenderTrackingConfig, type ComponentRenderInfo, type MemoryStats, type MemoryLeakSuspect, type ObjectPoolConfig, type CacheConfig, type CleanupCallback, type MemoryPressureCallback, type ChunkInfo, type ModuleInfo, type BundleAnalysisReport, type BundleRecommendation, type ResourceTimingEntry, type DynamicImportEntry, type BundleAnalyzerConfig, type CriticalityLevel, type ResourceType, type RenderBlockingResource, type CriticalResource, type ResourceRecommendation, type DOMAnalysis, type CriticalPathAnalysis, type CriticalPathOptimization, type CriticalPathAnalyzerConfig, type IdleTaskPriority, type IdleTaskStatus, type IdleTask, type IdleSchedulerConfig, type SchedulerStats, type IdleDeadline, type AdvancedPerformanceConfig, } from './advanced'; export { IntelligentPrefetchEngine, getIntelligentPrefetchEngine, resetIntelligentPrefetchEngine, PrefetchStrategy, ViewportPrefetchStrategy, HoverPrefetchStrategy, IdlePrefetchStrategy, SequentialPrefetchStrategy, ConditionalPrefetchStrategy, StrategyComposer, createViewportStrategy, createHoverStrategy, createIdleStrategy, createSequentialStrategy, createConditionalStrategy, PrefetchQueue, getPrefetchQueue, resetPrefetchQueue, RoutePrefetchManager, getRoutePrefetchManager, resetRoutePrefetchManager, prefetchRoute, registerPrefetchRoutes, createRouteLinkHandlers, DataPrefetchManager, getDataPrefetchManager, resetDataPrefetchManager, prefetchData, prefetchGraphQL, getCachedData, invalidateData, invalidateDataByTag, AssetPrefetchManager, getAssetPrefetchManager, resetAssetPrefetchManager, prefetchImage, prefetchImages, prefetchFont, dnsPrefetch, preconnect, preloadAsset, initPrefetchSystem, type PrefetchCandidate, type PredictionResult, type PredictionFactor, type BehaviorMetrics, type IntelligentPrefetchConfig, type PrefetchStrategyType, type PrefetchTarget, type StrategyContext, type StrategyResult, type BaseStrategyConfig, type ViewportStrategyConfig, type HoverStrategyConfig, type IdleStrategyConfig, type SequentialStrategyConfig, type ConditionalStrategyConfig, type PrefetchPriority, type PrefetchStatus, type PrefetchItem, type PrefetchQueueConfig, type QueueStats, type QueueEventType, type QueueEventListener, type RoutePrefetchConfig, type RoutePrefetchResult, type LinkPrefetchHandlers, type DataPrefetchConfig, type PrefetchRequestOptions, type PrefetchResult, type GraphQLPrefetchOptions, type AssetType, type Asset, type ResponsiveImage, type FontAsset, type AssetPrefetchConfig, type AssetPrefetchResult, type PrefetchSystemConfig, type PrefetchSystem, } from './prefetch'; export { EnhancedVitalsCollector, getEnhancedVitalsCollector, resetEnhancedVitalsCollector, DEFAULT_THRESHOLDS, PerformanceReporter, getPerformanceReporter, resetPerformanceReporter, RegressionDetector, getRegressionDetector, resetRegressionDetector, recordPerformanceSample, analyzePerformanceTrend, getRegressionSummary, BudgetEnforcer, getBudgetEnforcer, resetBudgetEnforcer, checkBudget as checkMonitoringBudget, enforceBudget, getComplianceReport, isPerformanceDegraded, isDegradationActive, DEFAULT_VITALS_BUDGETS, DEFAULT_BUNDLE_BUDGETS, DEFAULT_RUNTIME_BUDGETS, RealUserMonitoring, getRUM, initRUM, resetRUM, trackPageView, trackCustomEvent, trackRUMError, setRUMUserId, getRUMSessionSummary, initMonitoringSystem, quickStartMonitoring, type MetricName as MonitoringMetricName, type MetricRating, type CollectedMetric, type MetricAttribution, type MetricThresholds, type VitalsCollectionConfig, type MetricCallback, type ReportFormat, type ReportDestination, type ReportMetric, type PerformanceReport as MonitoringPerformanceReport, type ReportSummary, type ReportContext, type PerformanceReporterConfig, type AlertRule, type RegressionSeverity, type RegressionStatus, type MetricSample, type MetricBaseline, type RegressionEvent, type TrendAnalysis, type AnomalyResult, type RegressionDetectorConfig, type DetectorSummary, type BudgetCategory, type BudgetSeverity, type EnforcementMode, type DegradationAction, type BudgetDefinition, type EnforcementResult, type BudgetComplianceReport, type ComplianceReport, type BudgetEnforcerConfig, type SessionStatus, type RUMEventType, type UserSession, type DeviceInfo, type UTMParams, type PageViewEvent, type InteractionEvent, type ErrorEvent as RUMErrorEvent, type ResourceEvent, type RageClickEvent, type FormAbandonmentEvent, type RUMEvent, type RUMConfig, type SessionSummary, type MonitoringSystemConfig, type MonitoringSystem, } from './monitoring'; export { ObserverPool, ModulePreloader, createLazyComponent, withLazyLoading, LazyImage, useLazyVisible, useModulePreload, useNetworkAwareLoading, preloadComponent, preloadComponents, queueModulePreload, shouldLoadOnNetwork, resetObserverPool, resetModulePreloader, type NetworkTier, type LoadingPriority as LazyLoadingPriority, type LazyStrategy, type LazyComponentConfig, type LazyImageConfig, type ModulePreloadConfig, } from './lazy-everything'; export { RenderScheduler, getRenderScheduler, resetRenderScheduler, scheduleWork, cancelWork, yieldToMain, runInChunks, useOptimizedRender as useScheduledRender, useScheduledWork, useRenderBudget, type TaskStatus, type ScheduledTask, type FrameBudgetConfig, type RenderSchedulerConfig, } from './render-scheduler'; export { MemoryGuardian, getMemoryGuardian, resetMemoryGuardian, triggerMemoryCleanup, checkMemory, useMemoryGuard, useTrackedSubscription, useCleanupHandler, useMemoryPressureAwareness, type CleanupHandler, type ComponentMemoryBudget, type TrackedSubscription, type MemoryGuardianConfig, } from './memory-guardian'; export { BundleOptimizer, getBundleOptimizer, resetBundleOptimizer, detectDeviceCapabilities, detectNetworkConditions, loadPolyfills, getOptimalModule, formatBundleSize, useBundleOptimizer, useConditionalLoad, type DeviceTier, type DeviceCapabilities, type NetworkConditions, type LoadingStrategy, type PolyfillConfig, type ModuleAlternative, type BundleOptimizerConfig, } from './bundle-optimizer'; export { CriticalCSSExtractor, getCriticalCSSExtractor, resetCriticalCSSExtractor, extractAndInjectCriticalCSS, injectCriticalCSS, loadCSSAsync, preloadFont, applyContainment, useCriticalCSS, useCSSContainment, useDeferredCSS, type CriticalCSSConfig, type CSSRuleType, type AnalyzedCSSRule, type CriticalCSSResult, type FontResource, type ContainmentOptions, } from './critical-css'; export { useLazyFeature, useProgressiveLoad, clearFeatureCache, preloadFeature, type LazyFeatureStatus, type ProgressiveLoadPhase, type UseOptimizedRenderOptions, type UseOptimizedRenderReturn, type UseLazyFeatureOptions, type UseLazyFeatureReturn, type UseProgressiveLoadOptions, type UseProgressiveLoadReturn, } from './hooks/useOptimizedHooks';