import type { PlotLayout } from "../layout/plot-layout"; type GL = WebGL2RenderingContext | WebGLRenderingContext; /** * Return CSS-pixel dimensions of the GL canvas. */ export declare function cssSize(gl: GL, dpr: number): { cssWidth: number; cssHeight: number; }; /** * Clear the framebuffer + enable alpha blending. Call once per frame, * before any per-plot-rect {@link withScissor} invocations. Faceted * renderers call this once and then loop {@link withScissor} per cell * so the inter-facet clears don't wipe each other's pixels. */ export declare function clearAndSetupFrame(gl: GL): void; /** * Scissor-constrain `draw` to `layout.plotRect`. Caller handles * projection / uniforms / VBO bindings inside `draw`; this helper only * manages the scissor enable/disable bracket. * * Unlike {@link renderInPlotFrame}, this does *not* clear the * framebuffer — so it's safe to call repeatedly per frame (one per * facet). Pair with {@link clearAndSetupFrame} at the start of each * frame. */ export declare function withScissor(gl: GL, layout: PlotLayout, dpr: number, draw: () => void): void; /** * One-shot convenience: clear + setup blend + scissor + draw. Used by * single-plot callers (bar / heatmap / candlestick / scatter-without- * splits) that only draw into one plot rect per frame. * * Faceted callers must use {@link clearAndSetupFrame} + * {@link withScissor} instead; calling this helper in a per-facet loop * would clear the framebuffer on each invocation and wipe out every * previously-drawn facet. */ export declare function renderInPlotFrame(gl: GL, layout: PlotLayout, dpr: number, draw: () => void): void; export {};