import type { ReactiveController } from 'lit'; import { type CellDecoration, type CellDecoratorContext, type CellInteraction, type GridFeatureModule, type PresentedRow, type RowPresenterContext } from '../internal/feature-module.js'; import type { ActiveNode, GridHost } from '../internal/types.js'; import { EditingController } from './editing.js'; import { ExpansionController } from './expansion.js'; import { FilterController } from './filter.js'; import { NavigationController } from './navigation.js'; import { PaginationController } from './pagination.js'; import { ReorderController } from './reorder.js'; import { ResizeController } from './resize.js'; import { SelectionController } from './selection.js'; import { SortController } from './sort.js'; import { TreeController } from './tree.js'; export declare class StateController implements ReactiveController { #private; host: GridHost; private extraModules; sorting: SortController; filtering: FilterController; navigation: NavigationController; resizing: ResizeController; pagination: PaginationController; reordering: ReorderController; editing: EditingController; selection: SelectionController; expansion: ExpansionController; tree: TreeController; /** * Optional feature controllers contributed by {@link GridFeatureModule}s, * keyed by module id. Empty for the community `` element; populated * by derived grids (e.g. `@apexcharts/grid-enterprise`) that pass modules to * the constructor. */ readonly modules: Map; /** * Current message in the grid's polite live region. Bound by the host's * `renderLiveRegion()` template; mutated through {@link setAnnouncement} * so screen readers re-announce on every change. */ announcement: string; /** * Updates the polite live region's text. Repeats are forced to fire by * appending a zero-width space — screen readers ignore unchanged content, * so two identical sort announcements wouldn't otherwise be read aloud. */ setAnnouncement(message: string): void; get active(): ActiveNode; set active(node: ActiveNode); get headerRow(): import("../components/header-row.js").default; get scrollContainer(): import("../components/virtualizer.js").default; get paginator(): import("../components/paginator.js").default; get toolbar(): import("../components/toolbar.js").default; /** * Cumulative pin offsets (in px) keyed by column key. Populated by the * {@link GridDOMController} after each layout. */ get pinOffsets(): Map; constructor(host: GridHost, extraModules?: ReadonlyArray>); protected init(): void; /** * Look up a feature controller contributed by a {@link GridFeatureModule}, * by its module id. Returns `undefined` when no such module is registered. */ module(id: string): C | undefined; /** * Runs the post-pipeline row transforms contributed by feature modules * implementing {@link RowTransformer}, in registration order. Returns the * input unchanged when no such module is registered — the community grid path * is a no-op pass-through. */ applyModuleTransforms(rows: T[]): T[]; /** * Asks feature modules implementing {@link RowPresenter} whether they render * the given row as full-width custom content (e.g. a group header). Returns * the first non-null result, or `null` when no module owns the row. */ presentRow(row: T, ctx: RowPresenterContext): PresentedRow | null; get decorationVersion(): number; /** * Signals that {@link CellDecorator} output may have changed. Bumps the * {@link decorationVersion} and requests a host update so cells re-run their * decoration. Called by feature modules after mutating decoration state. */ bumpDecoration(): void; /** * Collects per-cell decoration contributed by feature modules implementing * {@link CellDecorator}, merging their attribute maps (later modules win on a * key clash). Returns `null` when no module decorates the cell — the community * grid path, where each cell applies nothing. */ decorateCell(ctx: CellDecoratorContext): CellDecoration | null; /** * Forwards a body-cell pointer interaction to every feature module that * implements {@link CellInteractionHandler}. No-op for the community grid * (no modules); the grid only calls this when modules are registered. */ handleCellInteraction(interaction: CellInteraction): void; hostConnected(): void; hostUpdate(): void; } export declare const gridStateContext: { __context__: StateController; };