import { ComponentPropsWithoutRef } from 'react';
import { Table as TanstackTable } from '@tanstack/react-table';
import { DataTableVirtualizer } from './useDataTableVirtualizer';
/**
 * Props for the DataTableBody component
 * @property {TanstackTable<T>} table - The table instance from @tanstack/react-table to render
 * @property {boolean} hasSubRows - Whether the table has sub rows
 * @property {DataTableVirtualizer | undefined} virtualizer - Optional virtualizer instance; when provided the body switches to absolute-position row layout
 * @property {(row: T) => unknown} [getRowVersion] - Optional consumer-provided function whose return value signals whether a row has changed. When supplied, rows are memoized; when omitted, every row re-renders with the parent.
 * @extends {ComponentPropsWithoutRef<"div">}
 */
export type DataTableBodyProps<T> = {
    /**
     * The table instance from @tanstack/react-table to render
     */
    table: TanstackTable<T>;
    /**
     * Whether the table has sub rows
     */
    hasSubRows: boolean;
    /**
     * Optional virtualizer instance. When provided the body renders only the
     * visible virtual items in an absolutely-positioned layout instead of
     * rendering all rows in the parent CSS grid flow.
     */
    virtualizer: DataTableVirtualizer | undefined;
    /**
     * Optional consumer-provided function that returns a value expressing
     * "this row has changed." When supplied, each row is memoized and only
     * re-renders when the returned value differs from the previous render
     * (or when table-managed row state like selection or expansion changes).
     * When omitted, every row re-renders whenever the parent re-renders.
     */
    getRowVersion?: (row: T) => unknown;
    /**
     * Map of read-only row ids keyed by id. Read-only rows gray their plain
     * text content and render disabled, read-only selection checkboxes.
     */
    readOnlyRowMap: Record<string, boolean>;
} & ComponentPropsWithoutRef<"div">;
export declare function DataTableBody<T>(props: DataTableBodyProps<T>): import("react/jsx-runtime").JSX.Element;
