import type { WebGLContextManager } from "../../../webgl/context-manager"; import type { SeriesChart } from "../series"; type GL = WebGL2RenderingContext | WebGLRenderingContext; /** * Line glyph for {@link SeriesChart}. Owns its program + per-series * GPU buffers privately; chart routes lifecycle through * `_glyphs.lines`. */ export declare class LineGlyph { private _program; private _buffers; private ensureProgram; /** * Drop persistent line buffers. Subsequent draws will no-op until * the next `rebuildBuffers` call. */ invalidateBuffers(chart: SeriesChart): void; /** * Rebuild the per-series GPU buffers for line glyphs. Called once * per data load (and once after `restyle()` because palette colors * are captured on the {@link LineSeriesEntry}). The buffer contents * encode `[x,y]` points for every cat in `[start, end]`; one * `bufferData` per series. After this, every `draw` call rebinds + * dispatches with no further uploads until the next data load. * * Gap behavior at synthesized cells is handled in the shader via * `u_interp_alpha` (set per draw based on the series' * `interpolateMode`): `skip` → 0 (invisible segments touching a * synthesized endpoint), `solid` → 1, `transparent` → 0.5. */ rebuildBuffers(chart: SeriesChart, glManager: WebGLContextManager): void; /** * Bind the persistent vertex buffers and dispatch one instanced draw * per series. Skips hidden series via `_hiddenSeries`. Gap / * transparency rendering is governed by `u_interp_alpha`, set per * series. */ draw(chart: SeriesChart, gl: GL, glManager: WebGLContextManager, projLeft: Float32Array, projRight: Float32Array): void; destroy(chart: SeriesChart): void; } export {};