import { WebGPUCamera } from './WebGPUCamera'; import { WebGPUMesh } from './WebGPUMesh'; export interface EngineOptions { canvas: HTMLCanvasElement; debug?: boolean; } export declare class WebGPUEngine { canvas: HTMLCanvasElement; adapter: GPUAdapter | null; device: GPUDevice | null; context: GPUCanvasContext | null; format: GPUTextureFormat; camera: WebGPUCamera; shadowPipeline: GPURenderPipeline | null; shadowTextureView: GPUTextureView | null; shadowSampler: GPUSampler | null; cameraBuffer: GPUBuffer | null; private cameraBindGroup; private renderPipeline; private depthTexture; private depthTextureView; lightSpaceMatrix: Float32Array; lightDir: Float32Array; private shadowDepthTexture; meshes: WebGPUMesh[]; clearColor: { r: number; g: number; b: number; a: number; }; keys: Record; deltaTime: number; private lastFrameTime; private debug; private fps; private lastTime; private frames; private drawCalls; private renderLoopId; private isRunning; constructor(options: EngineOptions); private handleKeyDown; private handleKeyUp; setDebug(debug: boolean): void; getMetrics(): { fps: number; drawCalls: number; totalInstances: number; }; init(): Promise; private handleUncapturedError; private initPipeline; handleResize(): void; start(): void; stop(): void; private renderLoop; private render; compileCustomShader(fragmentShaderSource: string): Promise<{ success: boolean; error?: string; }>; } //# sourceMappingURL=WebGPUEngine.d.ts.map