import { Row } from '@tanstack/react-table';
import { useColumnOrder } from './useColumnOrder';
export type DataTableBodyRowProps<T> = {
    columnOrder: ReturnType<typeof useColumnOrder>["columnOrder"];
    /**
     * O(1) lookup of leaf-column-index → visual position. Replaces
     * `columnOrder.indexOf(...)` per cell to keep large-table renders cheap.
     */
    columnIndexMap: ReturnType<typeof useColumnOrder>["columnIndexMap"];
    row: Row<T>;
    rowIndex: number;
    tableHasSubRows: boolean;
    isExpanded: boolean;
    canExpand: boolean;
    depth: number;
    parentRowCanExpand: boolean;
    isSelected: boolean;
    isSomeSelected: boolean;
    /**
     * True when any ancestor row (parent, grandparent, etc.) is currently
     * selected. Combined with `isSelected` to drive the row's
     * `data-anv-is-selected-row` attribute so descendants visually adopt
     * an ancestor's selection state without painting the ancestor itself.
     * Computed at the parent level (`DataTableBody.tsx`) so the prop
     * remains a serializable boolean — preserving `React.memo`
     * comparator semantics in `areRowPropsEqual`.
     */
    isAncestorSelected: boolean;
    /**
     * True when the row is flagged read-only via `readOnlyRowIds`. Grays the
     * row's plain-text cell content. Checkbox disabling is gated separately
     * at the DataTable level via `enableRowSelection`.
     */
    isReadOnly: boolean;
    /**
     * Optional consumer-provided function that returns a value expressing
     * "this row has changed." When supplied, the row is memoized: a row will
     * only re-render when the returned value differs from the previous render,
     * the row's internal UI state changes (expansion, selection, etc.), or
     * any row it depends on changes structurally. When omitted, every row
     * re-renders whenever the parent re-renders.
     */
    getRowVersion?: (row: T) => unknown;
};
declare function DataTableBodyRowInner<T>({ columnOrder: _columnOrder, columnIndexMap, row, rowIndex, tableHasSubRows, isExpanded, canExpand, depth, parentRowCanExpand, isSelected, isSomeSelected, isAncestorSelected, isReadOnly, }: DataTableBodyRowProps<T>): import("react/jsx-runtime").JSX.Element;
export declare const DataTableBodyRow: typeof DataTableBodyRowInner;
export {};
