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