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;