import React, { Component, ReactElement } from 'react';
import PropTypes from 'prop-types';
import { ElementProps } from '../core/ViewComponent';
import { ColumnLock } from './enum';
import DataSet from '../data-set/DataSet';
import ColumnGroup from './ColumnGroup';
import { TableHeaderRowProps } from './TableHeaderRow';
export interface TableHeaderProps extends ElementProps {
    dataSet: DataSet;
    lock?: ColumnLock | boolean;
}
export default class TableHeader extends Component<TableHeaderProps, any> {
    static displayName: string;
    static propTypes: {
        lock: PropTypes.Requireable<boolean | ColumnLock>;
    };
    static contextType: React.Context<{
        tableStore: import("./TableStore").default;
    }>;
    node: HTMLTableSectionElement | null;
    saveRef(node: any): void;
    getHeaderNode(): HTMLTableSectionElement | null;
    handleTheadMouseEnter(): void;
    handleTheadMouseLeave(): void;
    getTrs(): (ReactElement<TableHeaderRowProps> | undefined)[];
    render(): JSX.Element;
    getHeight(): number;
    getTableHeaderRows(columns: ColumnGroup[], currentRow?: number, rows?: ColumnGroup[][]): ColumnGroup[][];
    get groupedColumns(): ColumnGroup[];
}
