/** * @holoscript/core Performance Telemetry * * Real-time performance monitoring, profiling, and metrics collection * Exports metrics to analytics platforms and provides performance budgets */ export type MetricType = 'gauge' | 'counter' | 'histogram' | 'timer'; export type SeverityLevel = 'info' | 'warning' | 'critical'; /** * Performance metric */ export interface Metric { name: string; type: MetricType; value: number; timestamp: number; tags?: Record; unit?: string; } /** * Performance budget threshold */ export interface PerformanceBudget { metricName: string; maxValue: number; severity: SeverityLevel; enabled: boolean; } /** * Frame timing information */ export interface FrameTiming { frameNumber: number; fps: number; frameDuration: number; cpuTime: number; gpuTime: number; renderTime: number; logicTime: number; timestamp: number; } /** * Memory snapshot */ export interface MemorySnapshot { usedJSHeapSize: number; totalJSHeapSize: number; jsHeapSizeLimit: number; objectCount: number; gcEventsSinceLastSnapshot: number; timestamp: number; } /** * Performance analytics exporter */ export interface AnalyticsExporter { export(metrics: Metric[]): Promise; flush(): Promise; } /** * PerformanceTelemetry - Monitor and analyze runtime performance */ export declare class PerformanceTelemetry { private metrics; private budgets; private frameTimings; private memorySnapshots; private exporters; private frameCounter; private lastFrameTime; private frameTimes; private maxFrameHistory; private monitoringEnabled; private exportInterval; private exportIntervalMs; constructor(); /** * Initialize default performance budgets */ private initializeDefaultBudgets; /** * Start performance monitoring */ startMonitoring(): void; /** * Stop performance monitoring */ stopMonitoring(): void; /** * Record frame timing */ recordFrame(cpuTime: number, gpuTime: number, renderTime: number, logicTime: number): void; /** * Record custom metric */ recordMetric(metric: Omit & { timestamp?: number; }): void; /** * Record memory snapshot */ recordMemorySnapshot(): void; /** * Check frame metrics against budgets */ private checkBudgets; /** * Emit budget violation warning */ private emitBudgetViolation; /** * Set or update performance budget */ setBudget(budget: PerformanceBudget): void; /** * Get average FPS over recent frames */ getAverageFPS(): number; /** * Get memory usage stats */ getMemoryStats(): { used: number; total: number; limit: number; percentage: number; }; /** * Get recent frame timings */ getRecentFrameTimings(count?: number): FrameTiming[]; /** * Add analytics exporter */ addExporter(exporter: AnalyticsExporter): void; /** * Export all metrics to registered exporters */ exportMetrics(): Promise; /** * Generate performance report */ generateReport(): string; /** * Dispose and cleanup */ dispose(): void; } /** * Get or create telemetry instance */ export declare function getPerformanceTelemetry(): PerformanceTelemetry; //# sourceMappingURL=PerformanceTelemetry.d.ts.map