claritykit-svelte
Version:
A comprehensive Svelte component library focused on accessibility, ADHD-optimized design, developer experience, and full SSR compatibility
116 lines • 2.95 kB
TypeScript
/**
* Performance Monitoring Utilities for ClarityKit
*
* Provides comprehensive performance monitoring including Core Web Vitals,
* component render times, and bundle size tracking.
*/
export interface PerformanceMetrics {
lcp?: number;
fid?: number;
cls?: number;
fcp?: number;
ttfb?: number;
}
export interface ComponentMetrics {
name: string;
renderTime: number;
mountTime: number;
updateCount: number;
memoryUsage?: number;
}
export interface BundleMetrics {
totalSize: number;
gzippedSize: number;
chunks: Array<{
name: string;
size: number;
gzippedSize: number;
}>;
}
declare class PerformanceMonitor {
private metrics;
private componentMetrics;
private observers;
private isEnabled;
constructor();
/**
* Initialize performance observers for Core Web Vitals
*/
private initializeObservers;
/**
* Track component performance
*/
trackComponent(name: string): ComponentTracker;
/**
* Get current memory usage
*/
private getMemoryUsage;
/**
* Report performance metric
*/
private reportMetric;
/**
* Report component performance metric
*/
private reportComponentMetric;
/**
* Get all collected metrics
*/
getMetrics(): PerformanceMetrics;
/**
* Get component metrics
*/
getComponentMetrics(): ComponentMetrics[];
/**
* Generate performance report
*/
generateReport(): string;
/**
* Get performance score emoji
*/
private getScoreEmoji;
/**
* Clean up observers
*/
destroy(): void;
}
/**
* Component performance tracker
*/
declare class ComponentTracker {
private startTime;
private startMemory;
private name;
private onComplete;
constructor(name: string, onComplete: (metrics: Partial<ComponentMetrics>) => void);
/**
* Mark component as mounted
*/
markMounted(): void;
/**
* Mark render complete
*/
markRenderComplete(): void;
/**
* Get current memory usage
*/
private getMemoryUsage;
}
export declare const performanceMonitor: PerformanceMonitor;
/**
* Higher-order component for performance tracking
*/
export declare function withPerformanceTracking<T extends Record<string, any>>(Component: any, componentName?: string): (props: T) => any;
/**
* Performance measurement decorator for functions
*/
export declare function measurePerformance(target: any, propertyName: string, descriptor: PropertyDescriptor): PropertyDescriptor;
/**
* Bundle size analyzer (for build-time analysis)
*/
export declare class BundleSizeAnalyzer {
static analyzeBundleSize(bundlePath: string): BundleMetrics;
static generateSizeReport(metrics: BundleMetrics): string;
}
export type { PerformanceMetrics, ComponentMetrics, BundleMetrics };
//# sourceMappingURL=performance-monitor.d.ts.map