import React, { Component, ReactNode } from 'react';
import PropTypes from 'prop-types';
import { ColumnProps } from './Column';
import { ElementProps } from '../core/ViewComponent';
import Record from '../data-set/Record';
import { ColumnLock } from './enum';
export interface TableTBodyProps extends ElementProps {
    lock?: ColumnLock | boolean;
}
export default class TableTBody extends Component<TableTBodyProps, any> {
    static displayName: string;
    static propTypes: {
        lock: PropTypes.Requireable<boolean | ColumnLock>;
    };
    static contextType: React.Context<{
        tableStore: import("./TableStore").default;
    }>;
    tableBody: HTMLElement | null;
    nextFrameActionId?: number;
    get leafColumns(): ColumnProps[];
    get leafColumnsBody(): ColumnProps[];
    handleResize(): void;
    saveRef(node: any): void;
    /**
     * 虚拟滚动计算可视化数据
     */
    processData(): any;
    render(): JSX.Element;
    componentWillMount(): void;
    componentWillUnmount(): void;
    processDataSetListener(flag: boolean): void;
    handleDataSetValidate({ result }: {
        result: any;
    }): Promise<void>;
    componentDidUpdate(): void;
    getRows(records: Record[], columns: ColumnProps[], expanded?: boolean, lock?: ColumnLock | boolean, virtual?: boolean): ReactNode;
    getEmptyRow(columns: ColumnProps[], lock?: ColumnLock | boolean): ReactNode | undefined;
    renderExpandedRows(columns: ColumnProps[], record: Record, isExpanded?: boolean, lock?: ColumnLock | boolean): ReactNode;
    getRow(columns: ColumnProps[], record: Record, index: number, expanded?: boolean, lock?: ColumnLock | boolean): ReactNode;
    syncBodyHeight(): void;
}
