import { RenderContext } from './RenderContext'; import { CellRenderer } from './CellRenderer'; /** * Keeps one pooled `.apg-row` per visible row and one pooled `.apg-cell` per * visible column inside it. On each pass it releases rows and cells that left * the range and reuses them for the ones that entered — the DOM never grows * past the visible window plus its buffer. Group-header rows take a separate * path: a sticky label plus aggregate cells instead of data cells. */ export declare class RowRenderer { private canvas; private cells; private active; private rowClasses; private rowPool; constructor(canvas: HTMLElement, cells: CellRenderer); render(ctx: RenderContext): void; private repositionRow; clear(): void; private acquireRow; private fillGroup; private fillCells; private releaseRow; private applyRowStyle; }