/**
 * @import { StorageBuffer } from '../../platform/graphics/storage-buffer.js'
 * @import { GraphNode } from '../graph-node.js'
 * @import { GraphicsDevice } from '../../platform/graphics/graphics-device.js'
 * @import { Layer } from '../layer.js'
 * @import { GSplatWorkBuffer } from './gsplat-work-buffer.js'
 */
/**
 * Renders splats from the work buffer using instanced quad rendering.
 *
 * @ignore
 */
export class GSplatQuadRenderer extends GSplatRenderer {
    /** @type {ShaderMaterial} */
    _material: ShaderMaterial;
    /** @type {MeshInstance} */
    meshInstance: MeshInstance;
    /** @type {number} */
    originalBlendType: number;
    /** @type {Set<string>} */
    _internalDefines: Set<string>;
    /** @type {boolean} */
    forceCopyMaterial: boolean;
    /** @private */
    private _lastFisheyeEnabled;
    /** @private */
    private _lastSourceChunksKey;
    configureMaterial(): void;
    /**
     * Binds work buffer textures to the material.
     *
     * @private
     */
    private _bindWorkBufferTextures;
    /**
     * Injects format shader chunks into the material.
     * Called during initialization and after copying settings from user material.
     *
     * @private
     */
    private _injectFormatChunks;
    update(count: any, textureSize: any): void;
    frameUpdate(params: any): void;
    _lastNoFog: any;
    /**
     * Updates the ID-related defines based on whether pcId stream exists.
     *
     * @private
     */
    private _updateIdDefines;
    /**
     * Syncs with work buffer format when extra streams are added.
     *
     * @private
     */
    private _syncWithWorkBufferFormat;
    /**
     * Copies material settings from a source material to the internal material.
     * Preserves internal defines while copying user defines, parameters, and shader chunks.
     *
     * @param {ShaderMaterial} sourceMaterial - The source material to copy settings from.
     * @private
     */
    private copyMaterialSettings;
    updateOverdrawMode(params: any): void;
    createMeshInstance(): MeshInstance;
}
import { GSplatRenderer } from './gsplat-renderer.js';
import { ShaderMaterial } from '../materials/shader-material.js';
import { MeshInstance } from '../mesh-instance.js';
