/**
 * Performance Profiler
 *
 * Track render times, operation durations, and memory usage for debugging.
 *
 * @since v1.41.4
 */
/**
 * Render metric entry
 */
export interface RenderMetric {
    componentName: string;
    renderCount: number;
    totalTime: number;
    averageTime: number;
    maxTime: number;
    minTime: number;
    lastRenderTime: number;
    timestamps: number[];
}
/**
 * Operation metric entry
 */
export interface OperationMetric {
    operationName: string;
    callCount: number;
    totalTime: number;
    averageTime: number;
    maxTime: number;
    minTime: number;
    successCount: number;
    failureCount: number;
    lastCallTime: number;
}
/**
 * Memory snapshot
 */
export interface MemorySnapshot {
    timestamp: number;
    heapUsed: number;
    heapTotal: number;
    external: number;
    arrayBuffers: number;
    rss: number;
}
/**
 * Performance report
 */
export interface PerformanceReport {
    generatedAt: string;
    duration: number;
    components: RenderMetric[];
    operations: OperationMetric[];
    memory: {
        snapshots: MemorySnapshot[];
        peakHeapUsed: number;
        averageHeapUsed: number;
        heapGrowth: number;
    };
    summary: {
        totalRenders: number;
        totalOperations: number;
        slowestComponent: string | null;
        slowestOperation: string | null;
        memoryTrend: 'stable' | 'growing' | 'declining';
    };
}
/**
 * Profiler options
 */
export interface ProfilerOptions {
    /** Maximum render times to keep per component */
    maxRenderHistory?: number;
    /** Interval for memory snapshots in ms */
    memorySnapshotInterval?: number;
    /** Maximum memory snapshots to keep */
    maxMemorySnapshots?: number;
    /** Enable automatic memory tracking */
    autoMemoryTracking?: boolean;
}
/**
 * Start profiling
 */
export declare function startProfiling(opts?: ProfilerOptions): void;
/**
 * Stop profiling
 */
export declare function stopProfiling(): void;
/**
 * Check if profiling is enabled
 */
export declare function isProfilingEnabled(): boolean;
/**
 * Record a render time for a component
 */
export declare function recordRender(componentName: string, duration: number): void;
/**
 * Record an operation timing
 */
export declare function recordOperation(operationName: string, duration: number, success: boolean): void;
/**
 * Create an operation timer that automatically records on completion
 */
export declare function createOperationTimer(operationName: string): {
    end: (success?: boolean) => number;
};
/**
 * Take a memory snapshot
 */
export declare function takeMemorySnapshot(): MemorySnapshot;
/**
 * Get render metrics for a component
 */
export declare function getRenderMetrics(componentName: string): RenderMetric | null;
/**
 * Get all render metrics
 */
export declare function getAllRenderMetrics(): RenderMetric[];
/**
 * Get operation metrics
 */
export declare function getOperationMetrics(operationName: string): OperationMetric | null;
/**
 * Get all operation metrics
 */
export declare function getAllOperationMetrics(): OperationMetric[];
/**
 * Get memory snapshots
 */
export declare function getMemorySnapshots(): MemorySnapshot[];
/**
 * Analyze memory trend
 */
export declare function analyzeMemoryTrend(): 'stable' | 'growing' | 'declining';
/**
 * Generate a complete performance report
 */
export declare function generatePerformanceReport(): PerformanceReport;
/**
 * Format performance report for display
 */
export declare function formatPerformanceReport(report: PerformanceReport): string;
/**
 * Clear all profiling data
 */
export declare function clearProfilingData(): void;
//# sourceMappingURL=performance-profiler.d.ts.map