import { getEnhancedVitalsCollector, VitalsCollectionConfig } from './vitals-collector'; import { getPerformanceReporter, PerformanceReporterConfig } from './performance-reporter'; import { getRegressionDetector, RegressionDetectorConfig } from './regression-detector'; import { getBudgetEnforcer, BudgetEnforcerConfig } from './budget-enforcer'; import { getRUM, RUMConfig } from './real-user-monitoring'; /** * @file Performance Monitoring Module * @description Comprehensive performance monitoring infrastructure for React applications. * * Provides real-time performance tracking, regression detection, budget enforcement, * and Real User Monitoring (RUM) capabilities. * * @example * ```typescript * import { * // Vitals Collection * EnhancedVitalsCollector, * getEnhancedVitalsCollector, * * // Performance Reporting * PerformanceReporter, * getPerformanceReporter, * * // Regression Detection * RegressionDetector, * getRegressionDetector, * recordPerformanceSample, * * // Budget Enforcement * BudgetEnforcer, * getBudgetEnforcer, * enforceBudget, * * // Real User Monitoring * RealUserMonitoring, * initRUM, * trackCustomEvent, * } from '@/lib/performance/monitoring'; * ``` */ export { EnhancedVitalsCollector, getEnhancedVitalsCollector, resetEnhancedVitalsCollector, DEFAULT_THRESHOLDS, type MetricName, type MetricRating, type CollectedMetric, type MetricAttribution, type MetricThresholds, type VitalsCollectionConfig, type MetricCallback, } from './vitals-collector'; export { PerformanceReporter, getPerformanceReporter, resetPerformanceReporter, type ReportFormat, type ReportDestination, type ReportMetric, type PerformanceReport, type ReportSummary, type ReportContext, type PerformanceReporterConfig, type AlertRule, } from './performance-reporter'; export { RegressionDetector, getRegressionDetector, resetRegressionDetector, recordPerformanceSample, analyzePerformanceTrend, getRegressionSummary, type RegressionSeverity, type RegressionStatus, type MetricSample, type MetricBaseline, type RegressionEvent, type TrendAnalysis, type AnomalyResult, type RegressionDetectorConfig, type DetectorSummary, } from './regression-detector'; export { BudgetEnforcer, getBudgetEnforcer, resetBudgetEnforcer, checkBudget, enforceBudget, getComplianceReport, isPerformanceDegraded, isDegradationActive, DEFAULT_VITALS_BUDGETS, DEFAULT_BUNDLE_BUDGETS, DEFAULT_RUNTIME_BUDGETS, type BudgetCategory, type BudgetSeverity, type EnforcementMode, type DegradationAction, type BudgetDefinition, type EnforcementResult, type BudgetViolation, type BudgetComplianceReport, type ComplianceReport, type BudgetEnforcerConfig, } from './budget-enforcer'; export { RealUserMonitoring, getRUM, initRUM, resetRUM, trackPageView, trackCustomEvent, trackRUMError, setRUMUserId, getRUMSessionSummary, type SessionStatus, type RUMEventType, type UserSession, type DeviceInfo, type UTMParams, type PageViewEvent, type InteractionEvent, type ErrorEvent, type ResourceEvent, type RageClickEvent, type FormAbandonmentEvent, type RUMEvent, type RUMConfig, type SessionSummary, } from './real-user-monitoring'; /** * Unified monitoring configuration */ export interface MonitoringSystemConfig { /** Enable monitoring system */ enabled?: boolean; /** Vitals collection configuration */ vitals?: Partial; /** Reporter configuration */ reporter?: Partial; /** Regression detection configuration */ regression?: Partial; /** Budget enforcement configuration */ budget?: Partial; /** RUM configuration */ rum?: Partial; } /** * Monitoring system instance references */ export interface MonitoringSystem { /** Vitals collector */ vitals: ReturnType; /** Performance reporter */ reporter: ReturnType; /** Regression detector */ regression: ReturnType; /** Budget enforcer */ budget: ReturnType; /** RUM instance */ rum: ReturnType; /** Cleanup function */ cleanup: () => void; } /** * Initialize the complete monitoring system * * @example * ```typescript * const monitoring = initMonitoringSystem({ * vitals: { enabled: true, sampleRate: 0.5 }, * reporter: { destination: 'endpoint', endpointUrl: '/api/perf' }, * regression: { zScoreThreshold: 2.5 }, * budget: { mode: 'enforce', autoDegradation: true }, * rum: { trackErrors: true, trackClicks: true }, * }); * * // Later... * monitoring.cleanup(); * ``` */ export declare function initMonitoringSystem(config?: MonitoringSystemConfig): MonitoringSystem; /** * Quick start: Initialize monitoring with sensible defaults * * @example * ```typescript * // In main.tsx * const cleanup = await quickStartMonitoring({ * debug: import.meta.env.DEV, * endpoint: '/api/monitoring', * sampleRate: import.meta.env.PROD ? 0.1 : 1.0, * }); * ``` */ export declare function quickStartMonitoring(options?: { /** Enable debug mode */ debug?: boolean; /** Analytics endpoint */ endpoint?: string; /** Sample rate (0-1) */ sampleRate?: number; /** Callback when performance regression detected */ onRegression?: (event: import('./regression-detector').RegressionEvent) => void; /** Callback when budget violated */ onBudgetViolation?: (violation: import('./budget-enforcer').BudgetViolation) => void; }): () => void;