import { HTMLAttributes } from 'react';
import { InfiniteScrollProps } from '@parlor/common/components/infinite-scroll';
import { TableProps } from '../../table';
import { TableHeaderProps } from '../table-header';
export type RenderSubRows<T> = (options: {
    data: T[];
    isLoading?: boolean;
    isOpen?: boolean;
    parentRow?: T;
    showEmptyState?: boolean;
}) => JSX.Element;
type RenderSubRowComponents<T> = (options: {
    component: JSX.Element;
    data: T;
    isOpen?: boolean;
}) => JSX.Element;
export type TableBodyProps<T> = {
    children: TableProps<T>['children'];
    columnCount?: number;
    data?: T[];
    getInfiniteScrollProps?: (parentRow?: T) => Omit<InfiniteScrollProps, 'children'>;
    getRowClasses?: (row: T) => string;
    getSelectedRow?: (row: T) => boolean;
    getSubBodyProps?: (row: T, renderSubRows?: RenderSubRows<T>, renderSubRowComponents?: RenderSubRowComponents<T>) => ReturnType<RenderSubRows<T>>;
    headers: TableHeaderProps['headers'];
    index?: number;
    isDraggingRowEnabled: boolean;
    parentRow?: T;
};
export declare function TableBody<T extends {
    id: string;
    isTableLineSelected?: boolean;
}>({ data, children, getSubBodyProps, getRowClasses, getSelectedRow, index, isDraggingRowEnabled, columnCount, getInfiniteScrollProps, parentRow, headers, ...props }: TableBodyProps<T> & Omit<HTMLAttributes<HTMLTableRowElement>, 'children' | 'onClick'>): JSX.Element;
export {};
