/** * @holoscript/core LOD Performance Metrics * * Real-time performance tracking and profiling for LOD system. * Provides detailed metrics for optimization and debugging. * * v3.5 Performance Optimization */ export interface LODLevelHistogram { level: number; objectCount: number; triangleCount: number; memoryBytes: number; percentage: number; } export interface TransitionCostAnalysis { entityId: string; fromLevel: number; toLevel: number; costMs: number; timestamp: number; } export interface PerformanceSnapshot { timestamp: number; frameTimeMs: number; lodSelectionTimeMs: number; transitionTimeMs: number; totalObjects: number; activeTransitions: number; memoryUsageMB: number; averageLODLevel: number; } export interface ProfilingData { name: string; durationMs: number; callCount: number; averageMs: number; minMs: number; maxMs: number; } /** * Real-time performance tracking for LOD system */ export declare class LODPerformanceMetrics { private histogram; private transitionCosts; private snapshots; private profilingData; private maxHistorySize; private maxTransitionHistory; private enabled; private totalTransitions; private totalSelections; private totalFrames; constructor(enabled?: boolean); /** * Update LOD level histogram */ updateHistogram(objectsPerLevel: Map, trianglesPerLevel: Map): void; /** * Get LOD level histogram */ getHistogram(): LODLevelHistogram[]; /** * Get formatted histogram */ getFormattedHistogram(): string; /** * Record transition cost */ recordTransitionCost(entityId: string, fromLevel: number, toLevel: number, costMs: number): void; /** * Get transition cost statistics */ getTransitionCostStats(): { average: number; min: number; max: number; total: number; count: number; }; /** * Get recent transition costs */ getRecentTransitions(count?: number): TransitionCostAnalysis[]; /** * Record performance snapshot */ recordSnapshot(frameTimeMs: number, lodSelectionTimeMs: number, transitionTimeMs: number, totalObjects: number, activeTransitions: number, memoryUsageMB: number, averageLODLevel: number): void; /** * Get performance snapshots */ getSnapshots(count?: number): PerformanceSnapshot[]; /** * Get average performance over recent snapshots */ getAveragePerformance(sampleCount?: number): { frameTimeMs: number; lodSelectionTimeMs: number; transitionTimeMs: number; fps: number; }; /** * Start profiling a code section */ startProfile(_name: string): number; /** * End profiling and record result */ endProfile(name: string, startTime: number): void; /** * Get profiling data */ getProfilingData(): ProfilingData[]; /** * Get profiling data by name */ getProfilingDataByName(name: string): ProfilingData | undefined; /** * Reset profiling data */ resetProfiling(): void; /** * Export metrics to telemetry system */ exportToTelemetry(): { histogram: LODLevelHistogram[]; transitionStats: ReturnType; averagePerformance: ReturnType; profiling: ProfilingData[]; counters: { totalTransitions: number; totalSelections: number; totalFrames: number; }; }; /** * Export to JSON */ exportToJSON(): string; /** * Get formatted debug output */ getDebugOutput(): string; /** * Enable metrics collection */ enable(): void; /** * Disable metrics collection */ disable(): void; /** * Check if metrics are enabled */ isEnabled(): boolean; /** * Clear all metrics */ clear(): void; /** * Set maximum history size */ setMaxHistorySize(size: number): void; /** * Get total transition count */ getTotalTransitions(): number; /** * Get total selection count */ getTotalSelections(): number; /** * Get total frame count */ getTotalFrames(): number; /** * Increment selection counter */ incrementSelections(): void; } /** * Create LOD performance metrics tracker */ export declare function createLODPerformanceMetrics(enabled?: boolean): LODPerformanceMetrics; //# sourceMappingURL=LODMetrics.d.ts.map