import React, { ReactNode } from 'react';
import { DroppableStateSnapshot } from 'react-beautiful-dnd';
import Group from 'choerodon-ui/dataset/data-set/Group';
import { ElementProps } from '../core/ViewComponent';
import Record from '../data-set/Record';
import { ColumnLock } from './enum';
import { RecordCachedType } from '../data-set/enum';
import { DragRender } from './Table';
import ColumnGroups from './ColumnGroups';
import TableStore from './TableStore';
import VirtualRowMetaData from './VirtualRowMetaData';
export interface TableTBodyProps extends ElementProps {
    lock?: ColumnLock | undefined;
    columnGroups: ColumnGroups;
    snapshot?: DroppableStateSnapshot | undefined;
    dragRowHeight?: number | undefined;
}
declare type Statistics = {
    count: number;
    rowMetaData: VirtualRowMetaData[];
    lastRowMetaData?: VirtualRowMetaData;
    dragTargetFound?: boolean;
};
interface GenerateSimpleRowsProps {
    tableStore: TableStore;
    columnGroups: ColumnGroups;
    lock?: ColumnLock | undefined;
    isTree?: boolean | undefined;
    virtual?: boolean | undefined;
    rowDraggable?: boolean | undefined;
    draggableId?: string | undefined;
    dragRowHeight?: number | undefined;
    isFixedRowHeight?: boolean | undefined;
    virtualCell?: boolean | undefined;
}
interface GenerateRowsProps extends GenerateSimpleRowsProps {
    rowDragRender?: DragRender | undefined;
    expandIconColumnIndex?: number | undefined;
}
export interface RowsProps extends GenerateRowsProps {
    onClearCache: (type?: RecordCachedType) => void;
    snapshot?: DroppableStateSnapshot;
    dragRowHeight?: number;
}
export interface GenerateRowProps extends GenerateRowsProps {
    record: Record;
    groupPath?: [Group, boolean][];
    parentExpanded?: boolean | undefined;
    index: {
        count: number;
    };
    statistics?: Statistics | undefined;
    headerGroup?: {
        count: number;
    };
    children?: ReactNode;
}
declare const _default: React.FunctionComponent<TableTBodyProps>;
export default _default;
