import type { WebGLContextManager } from "../../../webgl/context-manager"; import type { CandlestickChart } from "../candlestick"; type GL = WebGL2RenderingContext | WebGLRenderingContext; /** * Candlestick body + wick glyph. Owns the body and wick programs + * their corner/segment/instance buffers, and the persistent up/down * wick vertex buffers built per data load. */ export declare class BodyWickGlyph { private _program; private _buffers; /** * Lazily compile the body and wick programs and create their static * GPU buffers (corner / quad). Cached for the lifetime of the chart. */ private ensureProgram; /** * Drop persistent body + wick vertex buffers. Called from data-load * (before `rebuildBuffers`) and from chart-destroy paths. */ invalidateBuffers(chart: CandlestickChart): void; /** * Pre-build the per-instance body buffer (interleaved * [xCenter, halfWidth, y0, y1, r, g, b]) and the up/down wick * line-segment buffers. Single GPU upload per buffer per data load. */ rebuildBuffers(chart: CandlestickChart, glManager: WebGLContextManager): void; draw(chart: CandlestickChart, gl: GL, glManager: WebGLContextManager, projection: Float32Array): void; /** * Free program-local GPU buffers + persistent vertex buffers. The * shader programs themselves are owned by `WebGLContextManager.shaders` * and not freed here. */ destroy(chart: CandlestickChart): void; } export {};