import React, { Component, ReactElement, ReactNode } from 'react';
import DataSet from '../../data-set/DataSet';
import { ElementProps } from '../../core/ViewComponent';
import { ButtonProps } from '../../button/Button';
import { PaginationProps } from '../../pagination/Pagination';
import TableContext, { TableContextValue } from '../TableContext';
export interface TableToolBarProps extends ElementProps {
    dataSet: DataSet;
    queryDataSet?: DataSet;
    queryFields: ReactElement<any>[];
    queryFieldsLimit?: number;
    buttons: ReactElement<ButtonProps>[];
    pagination?: ReactElement<PaginationProps>;
    onQuery?: () => void;
    onReset?: () => void;
}
export default class TableToolBar extends Component<TableToolBarProps, any> {
    static get contextType(): typeof TableContext;
    static displayName: string;
    static defaultProps: {
        queryFieldsLimit: number;
        pagination: null;
    };
    context: TableContextValue;
    modal: any;
    get prefixCls(): string;
    handleFieldEnter(): void;
    handleQueryReset(): void;
    handleQuery(collapse?: boolean): Promise<void>;
    componentWillUnmount(): void;
    getQueryBar(): ReactNode;
    getDirtyInfo(dataSet: DataSet | undefined, moreFields: ReactElement<any>[]): JSX.Element | undefined;
    getMoreButton(moreFields: ReactElement<any>[]): JSX.Element;
    createFields(elements: ReactElement<any>[], dataSet: DataSet, isMore: boolean): React.ReactElement<any, string | ((props: any) => React.ReactElement<any, any> | null) | (new (props: any) => React.Component<any, any, any>)>[];
    openMore(children: ReactNode): void;
    render(): (JSX.Element | undefined)[];
}
