import { ShaderProgram3D } from '../shader/programs'; import { Waterfall3DData } from './types'; export interface WaterfallOptions { maxSlices?: number; } export declare class Waterfall3D { private gl; private vao; private positionBuffer; private colorBuffer; private indexBuffer; private vertexCount; private indexCount; private sliceCount; private pointsPerSlice; private fillMode; constructor(gl: WebGL2RenderingContext, _options?: WaterfallOptions); private initBuffers; /** * Update waterfall data. * Each slice is a row of Y values at increasing Z positions. */ updateData(data: Waterfall3DData): void; private buildWireframe; private buildSolid; private applyColormap; private viridisColormap; private jetColormap; private hotColormap; /** * Add a new slice to the waterfall (for realtime updates). * Shifts existing slices back and adds new one at front. */ pushSlice(yValues: Float32Array, data: Waterfall3DData): void; render(program: ShaderProgram3D): void; destroy(): void; }