import type { RenderItemFunction } from '@lit-labs/virtualizer/virtualize.js'; import { type ReactiveController } from 'lit'; import { type StyleInfo } from 'lit/directives/style-map.js'; import type { ColumnConfiguration, GridHost } from '../internal/types.js'; import type { StateController } from './state.js'; export declare class GridDOMController implements ReactiveController { #private; protected host: GridHost; protected state: StateController; constructor(host: GridHost, state: StateController); get container(): import("../components/virtualizer.js").default; /** * Visual render order: `'start'`-pinned columns first, then unpinned, then * `'end'`-pinned. The user-supplied `columns` array is never mutated. */ get displayColumns(): Array>; columnSizes: StyleInfo; /** * The resolved inline-start (for `'start'` pin) or inline-end (for `'end'` pin) * pixel offset per pinned column key. Populated after layout by * {@link recomputePinOffsets}. */ pinOffsets: Map; rowRenderer: RenderItemFunction; hostConnected(): Promise; hostUpdate(): void; hostUpdated(): void; hostDisconnected(): void; /** * Writes the grid host's `clientWidth` into `--apex-host-width`. Used by the * toolbar and paginator to clamp their width to the visible viewport so * horizontal scrolling doesn't drag them off-screen. */ recomputeHostWidth(): void; setScrollOffset(): void; protected setGridColumnSizes(): void; getActiveRowStyles(index: number): StyleInfo; /** * Measures the rendered widths of pinned header cells and writes cumulative * inline-start / inline-end pixel offsets into {@link pinOffsets}. Called after * each grid update and whenever a header cell is resized. */ recomputePinOffsets(): void; protected observeHeaderCells(): void; /** * Writes the cumulative height of the sticky top rows into CSS custom * properties used by the header/filter rows for their `inset-block-start` * offsets. The toolbar is always at `top: 0`; the header sits below it * (`--apex-row-top-header`) and the filter sits below the header * (`--apex-row-top-filter`). Writes are skipped when the values haven't * changed so the ResizeObserver feedback loop terminates. */ recomputeStickyRowOffsets(): void; protected observeStickyRows(): void; }