import { HTMLAttributes, PropsWithChildren, KeyboardEvent, Ref } from 'react'; import { MatrixNode } from '@vega-ui/utils'; import { DataGridExclude, DataGridCellKey, DataGridWrap, DataGridApiRef } from './types'; export interface DataGridProps extends HTMLAttributes { /** * Ref to the grid’s root element. */ ref?: Ref; /** * Ref to the grid’s imperative API. * Exposes low-level structures for advanced scenarios: * - `grid` — matrix navigation helper * - `keyMap` — Map for fast lookups */ apiRef?: Ref>; /** * Navigation wrap mode. * - 'horizontal' — wrap across columns within the same row * - 'vertical' — wrap across rows within the same column * - 'both' — enable both behaviors * - undefined — no wrapping */ wrap?: DataGridWrap; /** * Uncontrolled initial active (focused) cell key. */ defaultActive?: K; /** * Controlled active (focused) cell key. */ active?: K; /** * Fires when the active (focused) cell key changes. */ onChangeActive?(active: K): void; /** * Exclude cells from focus traversal. * Can be: * - a single key * - an array of keys * - a predicate `(key) => boolean` */ exclude?: DataGridExclude; /** * Page navigation row step for PageUp/PageDown. * - `undefined` — jump to the first/last row * - `number` — move by N rows relative to the current row */ rowDelta?: number; /** * Fires on each Arrow navigation step after focus changes */ onArrow?(e: KeyboardEvent, node: MatrixNode, prevNode: MatrixNode): void; } /** * DataGrid is a focusable grid container that manages keyboard navigation * and active-cell focus. It supports Arrow, PageUp/PageDown, Home/End, * optional wrapping, exclusion of specific cells from traversal, and an * imperative API (`apiRef`) for advanced integrations. */ export declare const DataGrid: ({ wrap, children, apiRef, className, rowDelta, exclude, active: _active, defaultActive, onChangeActive, onKeyDown: _onKeyDown, onArrow, ...props }: PropsWithChildren>) => import("react/jsx-runtime").JSX.Element;