import type { WebGLContextManager } from "../../webgl/context-manager"; import { type SeriesChart } from "./series"; /** * Upload bar instance buffers from the columnar `_bars` storage. */ export declare function uploadBarInstances(chart: SeriesChart, glManager: WebGLContextManager): void; /** * Re-upload the per-bar color attribute. Short-circuits when the new * colors match the last-uploaded snapshot byte-for-byte. Legacy code * ran this every frame regardless; with the cached palette now stable * across pan/zoom this becomes a no-op except after data load / * `restyle()`. */ export declare function uploadBarColors(chart: SeriesChart, glManager: WebGLContextManager): void; /** * Drop persistent vertex buffers for line / scatter / area glyphs. * Called from `uploadAndRender` before {@link rebuildGlyphBuffers}. */ export declare function invalidateGlyphBuffers(chart: SeriesChart): void; /** * Build persistent vertex buffers for line / scatter / area glyphs. * The legacy renderers rebuilt and re-uploaded these every frame inside * the per-glyph draw functions; with stable post-build geometry the * uploads now happen exactly once per data-load / palette change. */ export declare function rebuildGlyphBuffers(chart: SeriesChart, glManager: WebGLContextManager): void; /** * Full-frame render: gridlines → WebGL bars (instanced) → chrome overlay. */ export declare function renderBarFrame(chart: SeriesChart, glManager: WebGLContextManager): void; /** * Draw axes chrome + legend + tooltip onto the overlay canvas. */ export declare function renderBarChromeOverlay(chart: SeriesChart): void; export declare function rightAxisDataToPixel(chart: SeriesChart, x: number, y: number): { px: number; py: number; };