UNPKG

@stacksjs/stx

Version:

A performant UI Framework. Powered by Bun.

76 lines 2.16 kB
/** * Generate performance panel HTML */ export declare function getPerformancePanelHtml(metrics: ComponentMetrics[]): string; /** * Generate performance panel styles */ export declare function getPerformancePanelStyles(): string; /** * Generate performance client script */ export declare function getPerformanceScript(): string; /** * Global profiler instance */ export declare const profiler: PerformanceProfiler; /** * STX Story - Component Performance Profiling * Track render times, re-render counts, and memory usage */ /** * Performance metrics for a component */ export declare interface ComponentMetrics { componentId: string componentName: string renderCount: number totalRenderTime: number avgRenderTime: number minRenderTime: number maxRenderTime: number lastRenderTime: number memoryUsage?: number history: RenderRecord[] } /** * Single render record */ export declare interface RenderRecord { timestamp: number duration: number props?: Record<string, any> memory?: number } /** * Performance profiler */ export declare class PerformanceProfiler { private metrics: any; private maxHistorySize: any; private enabled: any; setEnabled(enabled: boolean): void; recordRender(componentId: string, componentName: string, duration: number, props?: Record<string, any>): void; getMetrics(componentId: string): ComponentMetrics | undefined; getAllMetrics(): ComponentMetrics[]; getSlowestComponents(limit?: any): ComponentMetrics[]; getMostRenderedComponents(limit?: any): ComponentMetrics[]; clear(): void; clearComponent(componentId: string): void; private getMemoryUsage(): number | undefined; exportMetrics(): string; createTimer(componentId: string, componentName: string): RenderTimer; } /** * Render timer helper */ export declare class RenderTimer { private startTime: number; private props?: Record<string, any>; private profiler: PerformanceProfiler; private componentId: string; private componentName: string; constructor(profiler: PerformanceProfiler, componentId: string, componentName: string); setProps(props: Record<string, any>): this; end(): number; }