/**
 * 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