import { Row } from '@tanstack/react-table';
import { TableRow } from '../../types';
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;
    isActivatable: boolean;
    isActive: boolean;
    /**
     * True when the row is the topmost active ancestor in its active chain
     * (itself active, has sub-rows, and no ancestor row is active). Drives
     * the darker blue/100 background; non-topmost active rows use blue/50.
     */
    isTopMostActive: boolean;
    /**
     * True when the row is flagged read-only via `readOnlyRowIds`. Grays
     * plain text, shows `not-allowed` cursor on activatable rows, and
     * disables the activation click (checkbox disabling is gated at the
     * DataTable level via `enableRowSelection`).
     */
    isReadOnly: boolean;
    onToggleActive: (rowId: TableRow<T>["id"], descendantIds: TableRow<T>["id"][]) => void;
    /**
     * 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, isActivatable, isActive, isTopMostActive, isReadOnly, onToggleActive, }: DataTableBodyRowProps<T>): import("react/jsx-runtime").JSX.Element;
export declare const DataTableBodyRow: typeof DataTableBodyRowInner;
export {};
