export interface DataTableBodyProps<T = any> {
    /** Show skeleton rows while `loading` is true and data is empty. */
    loading?: boolean;
    emptyMessage?: string;
    /** Skeleton row count when loading. Default `10`. */
    skeletonRows?: number;
    className?: string;
    /**
     * Per-row class name. Prefer `useCallback` for function form to avoid
     * breaking `React.memo` on rows.
     */
    rowClassName?: string | ((item: T, index: number) => string);
    /** Dense row height. */
    compact?: boolean;
    /**
     * Click anywhere on a row (except elements with `data-no-row-click`). Prefer
     * `useCallback` to avoid breaking `React.memo` on rows.
     */
    onRowClick?: (item: T) => void;
    /**
     * Turn each row into a `next/link` to the returned URL. Ignored if
     * `onRowClick` is set. Prefer `useCallback` for the same reason.
     */
    rowHref?: (item: T) => string | null | undefined;
    /**
     * Keep table height stable by padding with invisible rows when data is short.
     * Typically set to the same value as `skeletonRows`. Pass `0` to disable.
     */
    minRows?: number;
}
/**
 * Renders skeleton / empty state / rows based on table context state. Place
 * inside `<DataTable>`. Rows use `React.memo` for performance — memoize
 * `onRowClick` / `rowHref` / `rowClassName` (if function) with `useCallback`
 * in the consumer to get the full benefit.
 */
export declare function DataTableBody<T = any>({ loading, emptyMessage, skeletonRows, className, rowClassName, compact, onRowClick, rowHref, minRows, }: DataTableBodyProps<T>): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=data-table-body.d.ts.map