import { MemoryUsage } from './types.js'; export interface GpuTimerResult { readonly timeElapsedNs: number; } export interface RenderStatistics { readonly frameTimeMs: number; readonly gpuTimeMs: number; readonly cpuFrameTimeMs: number; readonly drawCalls: number; readonly triangles: number; readonly vertices: number; readonly textureBinds: number; readonly shaderSwitches: number; readonly visibleSurfaces: number; readonly culledSurfaces: number; readonly visibleEntities: number; readonly culledEntities: number; readonly memoryUsageMB: { readonly textures: number; readonly geometry: number; readonly total: number; }; } export interface FrameStats { drawCalls: number; vertexCount: number; batches: number; shaderSwitches: number; visibleSurfaces: number; culledSurfaces: number; visibleEntities: number; culledEntities: number; } export declare class GpuProfiler { private readonly ext; private readonly gl; private readonly activeQueries; private readonly queryPool; private currentQuery; private lastGpuTimeMs; private frameStartTime; private lastCpuFrameTimeMs; private textureMemoryBytes; private bufferMemoryBytes; private shaderMemoryBytes; constructor(gl: WebGL2RenderingContext); get available(): boolean; getPerformanceReport(frameStats: FrameStats): RenderStatistics; startFrame(): void; endFrame(): void; trackTextureMemory(bytes: number): void; trackBufferMemory(bytes: number): void; trackShaderMemory(bytes: number): void; getMemoryUsage(): MemoryUsage; private getQuery; private pollQueries; dispose(): void; } //# sourceMappingURL=gpuProfiler.d.ts.map