import React from 'react';
import PropTypes from 'prop-types';
import NormalTable from './Table';
import Column from './Column';
import { TableProps, Data } from './interface';
import { ContextValue } from '../configProvider/context';
declare class Table<RecordType extends Record<string, any> = Data> extends React.PureComponent<TableProps<RecordType>> {
    static Column: typeof Column;
    static DEFAULT_KEY_COLUMN_SELECTION: "column-selection";
    static DEFAULT_KEY_COLUMN_EXPAND: "column-expand";
    static propTypes: {
        resizable: PropTypes.Requireable<NonNullable<boolean | object>>;
        className: PropTypes.Requireable<string>;
        style: PropTypes.Requireable<object>;
        prefixCls: PropTypes.Requireable<string>;
        components: PropTypes.Requireable<any>;
        bordered: PropTypes.Requireable<boolean>;
        loading: PropTypes.Requireable<boolean>;
        size: PropTypes.Requireable<"default" | "small" | "middle">;
        tableLayout: PropTypes.Requireable<"" | "fixed" | "auto">;
        columns: PropTypes.Requireable<PropTypes.InferProps<{
            align: PropTypes.Requireable<"center" | "left" | "right">;
            className: PropTypes.Requireable<string>;
            colSpan: PropTypes.Requireable<number>;
            dataIndex: PropTypes.Requireable<string>;
            defaultSortOrder: PropTypes.Requireable<"ascend" | "descend">;
            filterChildrenRecord: PropTypes.Requireable<boolean>;
            filterDropdownProps: PropTypes.Requireable<object>;
            filterDropdown: PropTypes.Requireable<PropTypes.ReactNodeLike>;
            filterDropdownVisible: PropTypes.Requireable<boolean>;
            filterIcon: PropTypes.Requireable<(...args: any[]) => any>;
            filterMultiple: PropTypes.Requireable<boolean>;
            filteredValue: PropTypes.Requireable<any[]>;
            filters: PropTypes.Requireable<any[]>;
            fixed: PropTypes.Requireable<boolean | "left" | "right">;
            onCell: PropTypes.Requireable<(...args: any[]) => any>;
            onFilter: PropTypes.Requireable<(...args: any[]) => any>;
            onFilterDropdownVisibleChange: PropTypes.Requireable<(...args: any[]) => any>;
            onHeaderCell: PropTypes.Requireable<(...args: any[]) => any>;
            onSorterChange: PropTypes.Requireable<(...args: any[]) => any>;
            render: PropTypes.Requireable<(...args: any[]) => any>;
            renderFilterDropdownItem: PropTypes.Requireable<(...args: any[]) => any>;
            sortChildrenRecord: PropTypes.Requireable<boolean>;
            sortDirections: PropTypes.Requireable<string[]>;
            sortOrder: PropTypes.Requireable<NonNullable<string | boolean>>;
            sorter: PropTypes.Requireable<NonNullable<boolean | ((...args: any[]) => any)>>;
            title: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
            useFullRender: PropTypes.Requireable<boolean>;
            width: PropTypes.Requireable<NonNullable<string | number>>;
        }>[]>;
        hideExpandedColumn: PropTypes.Requireable<boolean>;
        id: PropTypes.Requireable<string>;
        expandIcon: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
        expandCellFixed: PropTypes.Requireable<boolean | "left" | "right">;
        title: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
        onHeaderRow: PropTypes.Requireable<(...args: any[]) => any>;
        showHeader: PropTypes.Requireable<boolean>;
        indentSize: PropTypes.Requireable<number>;
        rowKey: PropTypes.Requireable<NonNullable<string | number | ((...args: any[]) => any)>>;
        onRow: PropTypes.Requireable<(...args: any[]) => any>;
        onExpandedRowsChange: PropTypes.Requireable<(...args: any[]) => any>;
        onExpand: PropTypes.Requireable<(...args: any[]) => any>;
        rowExpandable: PropTypes.Requireable<(...args: any[]) => any>;
        expandedRowRender: PropTypes.Requireable<(...args: any[]) => any>;
        expandedRowKeys: PropTypes.Requireable<any[]>;
        defaultExpandAllRows: PropTypes.Requireable<boolean>;
        expandAllRows: PropTypes.Requireable<boolean>;
        defaultExpandAllGroupRows: PropTypes.Requireable<boolean>;
        expandAllGroupRows: PropTypes.Requireable<boolean>;
        defaultExpandedRowKeys: PropTypes.Requireable<any[]>;
        pagination: PropTypes.Requireable<NonNullable<boolean | object>>;
        renderPagination: PropTypes.Requireable<(...args: any[]) => any>;
        footer: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
        empty: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        dataSource: PropTypes.Requireable<any[]>;
        childrenRecordName: PropTypes.Requireable<string>;
        rowSelection: PropTypes.Requireable<NonNullable<boolean | object>>;
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        scroll: PropTypes.Requireable<PropTypes.InferProps<{
            x: PropTypes.Requireable<NonNullable<string | number | boolean>>;
            y: PropTypes.Requireable<NonNullable<string | number>>;
        }>>;
        groupBy: PropTypes.Requireable<NonNullable<string | number | ((...args: any[]) => any)>>;
        renderGroupSection: PropTypes.Requireable<(...args: any[]) => any>;
        onGroupedRow: PropTypes.Requireable<(...args: any[]) => any>;
        clickGroupedRowToExpand: PropTypes.Requireable<boolean>;
        virtualized: PropTypes.Requireable<NonNullable<boolean | object>>;
        dropdownPrefixCls: PropTypes.Requireable<string>;
        expandRowByClick: PropTypes.Requireable<boolean>;
        getVirtualizedListRef: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static defaultProps: {
        hideExpandedColumn: boolean;
    };
    static contextType: React.Context<ContextValue>;
    tableRef: React.RefObject<NormalTable<RecordType>>;
    context: ContextValue;
    constructor(props: TableProps);
    getCurrentPageData: () => Pick<import("@douyinfe/semi-foundation/lib/es/table/foundation").BasePageData<RecordType>, "dataSource" | "groups">;
    render(): React.JSX.Element;
}
export * from './interface';
export default Table;
