import { ReactElement, ReactNode, RefObject } from 'react'; import { ColumnDef, ExpandedState, FilterFnOption, Row, SortingState } from '@tanstack/react-table'; type DataGridSize = 'default' | 'compact'; type DataGridHandle = { scrollToRow: (index: number) => void; resetSorting: () => void; }; type DataGridBaseProps = { data: TData[]; columns: ColumnDef[]; getRowId?: (originalRow: TData, index: number) => string; rowCount?: number; globalFilterFn?: FilterFnOption; enableSorting?: boolean; manualSorting?: boolean; sorting?: SortingState; defaultSorting?: SortingState; onSortingChange?: (value: SortingState) => void; getSubRows?: (row: TData, index: number) => TData[] | undefined; expanded?: ExpandedState; defaultExpanded?: ExpandedState; onExpandedChange?: (value: ExpandedState) => void; getRowCanExpand?: (row: Row) => boolean; maxDepth?: number; pinnedColumns?: string[]; gridRef?: RefObject; size?: DataGridSize; children?: ReactNode; className?: string; onRowClick?: (row: Row) => void; rowHeight?: number; headerHeight?: number; }; type DataGridAccessibleNameProps = { 'aria-label': string; 'aria-labelledby'?: string; } | { 'aria-labelledby': string; 'aria-label'?: string; }; type DataGridProps = DataGridBaseProps & DataGridAccessibleNameProps; declare function DataGrid({ data, columns, getRowId, rowCount, globalFilterFn, enableSorting, manualSorting, sorting, defaultSorting, onSortingChange, getSubRows, expanded, defaultExpanded, onExpandedChange, getRowCanExpand, maxDepth, pinnedColumns, gridRef, size, children, className, onRowClick, rowHeight, headerHeight, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, }: DataGridProps): ReactElement; export { DataGrid, type DataGridHandle };