UNPKG

triyak-react-performance

Version:

Advanced React performance optimization toolkit - Built with modern React best practices and performance optimization techniques

157 lines 4.36 kB
export interface PerformanceMetrics { lcp: number; fid: number; cls: number; ttfb: number; fcp: number; lcpElement?: Element; timestamp: number; } export interface PerformanceThresholds { lcp: { good: number; needsImprovement: number; poor: number; }; fid: { good: number; needsImprovement: number; poor: number; }; cls: { good: number; needsImprovement: number; poor: number; }; ttfb: { good: number; needsImprovement: number; poor: number; }; fcp: { good: number; needsImprovement: number; poor: number; }; } export interface PerformanceAlert { metric: keyof PerformanceMetrics; value: number; threshold: number; severity: 'warning' | 'error' | 'critical'; timestamp: number; element?: Element; recommendation?: string; } export interface PerformanceOptimization { type: 'lcp' | 'fid' | 'cls' | 'ttfb' | 'fcp' | 'bundle' | 'memory'; action: string; priority: 'low' | 'medium' | 'high' | 'critical'; estimatedImpact: number; implementation: string; cost: 'low' | 'medium' | 'high'; } export interface PerformanceReport { metrics: PerformanceMetrics; alerts: PerformanceAlert[]; optimizations: PerformanceOptimization[]; score: number; grade: 'A' | 'B' | 'C' | 'D' | 'F'; timestamp: number; url: string; userAgent: string; } export interface PerformanceConfig { enableAIOptimization: boolean; optimizationMode: 'conservative' | 'aggressive' | 'custom'; monitoring: boolean; alerts: boolean; reporting: boolean; autoOptimize: boolean; customThresholds?: Partial<PerformanceThresholds>; alertCallbacks?: { onAlert?: (alert: PerformanceAlert) => void; onOptimization?: (optimization: PerformanceOptimization) => void; onReport?: (report: PerformanceReport) => void; }; } export interface BundleMetrics { size: number; gzippedSize: number; modules: number; chunks: number; treeShakingEfficiency: number; duplicateModules: number; optimizationOpportunities: BundleOptimization[]; } export interface BundleOptimization { type: 'code-splitting' | 'tree-shaking' | 'duplicate-removal' | 'minification'; description: string; potentialSavings: number; difficulty: 'easy' | 'medium' | 'hard'; priority: 'low' | 'medium' | 'high'; } export interface MemoryMetrics { used: number; total: number; limit: number; percentage: number; leaks: MemoryLeak[]; optimizationOpportunities: MemoryOptimization[]; } export interface MemoryLeak { type: 'event-listener' | 'timer' | 'closure' | 'dom-reference'; description: string; severity: 'low' | 'medium' | 'high' | 'critical'; location: string; size: number; } export interface MemoryOptimization { type: 'cleanup' | 'garbage-collection' | 'reference-removal'; description: string; potentialSavings: number; difficulty: 'easy' | 'medium' | 'hard'; priority: 'low' | 'medium' | 'high'; } export interface ImageOptimization { originalSize: number; optimizedSize: number; format: 'jpeg' | 'webp' | 'avif' | 'png'; quality: number; compressionRatio: number; loading: 'lazy' | 'eager' | 'preload'; responsive: boolean; } export interface CoreWebVitalsScore { lcp: 'good' | 'needs-improvement' | 'poor'; fid: 'good' | 'needs-improvement' | 'poor'; cls: 'good' | 'needs-improvement' | 'poor'; overall: 'good' | 'needs-improvement' | 'poor'; score: number; } export interface PerformanceHistory { reports: PerformanceReport[]; trends: { lcp: number[]; fid: number[]; cls: number[]; score: number[]; }; improvements: { metric: keyof PerformanceMetrics; before: number; after: number; improvement: number; timestamp: number; }[]; } export interface AIOptimizationResult { type: 'performance' | 'bundle' | 'memory' | 'image'; confidence: number; recommendation: string; expectedImprovement: number; implementation: string; cost: number; priority: 'low' | 'medium' | 'high' | 'critical'; } //# sourceMappingURL=performance.d.ts.map