/// <reference types="react" />
import { PureComponent } from '../component';
import { SeperateTableProps, TheadProps } from './Props';
import { ScrollProps } from '../Scroll/Props';
interface SeperateTableState {
    scrollTop: number;
    scrollLeft: number;
    offsetLeft?: number;
    offsetRight?: number;
    currentIndex: number;
    floatFixed: boolean;
    resize: boolean;
    colgroup?: number[];
}
declare class SeperateTable<DataItem, Value> extends PureComponent<SeperateTableProps<DataItem, Value>, SeperateTableState> {
    bindTbody: (el: HTMLDivElement) => void;
    bindRealTbody: (el: HTMLTableElement) => void;
    bindThead: (el: HTMLTableElement) => void;
    bindHeadWrapper: (el: HTMLDivElement) => void;
    bindFoot: (el: HTMLTableElement) => void;
    rmOverScrollListener?: (() => void) | null;
    thead: HTMLTableElement;
    tbody: HTMLDivElement;
    tfoot: HTMLTableElement;
    realTbody: HTMLTableElement;
    headWrapper: HTMLDivElement;
    cachedRowHeight: number[];
    lastScrollArgs: Parameters<ScrollProps['onScroll']>;
    lastScrollTop: number;
    ajustBottomScroll: boolean;
    renderByExpand: boolean;
    lastResetLeft: number;
    lastResetRight: number;
    lastData: SeperateTableProps<DataItem, Value>['data'];
    lastColumns: SeperateTableProps<DataItem, Value>['columns'];
    static defaultProps: {
        rowHeight: number;
    };
    constructor(props: SeperateTableProps<DataItem, Value>);
    componentDidMount(): void;
    componentDidUpdate(prevProps: SeperateTableProps<DataItem, Value>): void;
    componentWillUnmount(): void;
    getIndex(scrollTop?: number): number;
    getContentHeight(): number;
    getContentWidth(): number;
    getSumHeight(start: number, end: number): number;
    getLastRowHeight(index: number): number;
    setRowHeight(height: number, index: number, expand: boolean): void;
    setTop(scrollHeight: number, fullHeight: number, top: number): void;
    checkScrollToIndex(index: number, outerHeight: number): number;
    ajustBottom(dataChange: boolean): void;
    updateScrollLeft(): void;
    adjustScrollLeft(): void;
    resetFloatFixed(): void;
    resetIndex(): number;
    resetHeight(): void;
    resetWidth(left?: number, right?: number): void;
    bindElement(key: 'thead' | 'tbody' | 'tfoot' | 'realTbody' | 'headWrapper', el: HTMLElement): void;
    scrollToTop(): void;
    scrollToIndex(index: number, callback?: () => void): void;
    scrollOffset(index: number, callback: () => void): void;
    handleScroll(...args: Parameters<ScrollProps['onScroll']>): void;
    handleSortChange(...args: Parameters<TheadProps<DataItem, Value>['onSortChange']>): void;
    handleColgroup(tds: NodeListOf<HTMLTableCellElement>): void;
    renderBody(floatClass: string[]): JSX.Element;
    renderHeader(floatClass: string[]): JSX.Element;
    renderFooter(floatClass: string[]): JSX.Element | null;
    render(): (JSX.Element | null)[];
}
export default SeperateTable;
