import React, { Component, MouseEventHandler, ReactElement, ReactNode } from 'react';
import { TableButtonType } from '../enum';
import { Buttons, ComboFilterBarConfig, DynamicFilterBarConfig, SummaryBar, TableQueryBarHookProps } from '../Table';
import { ButtonProps } from '../../button/Button';
import { DataSetExportStatus } from '../../data-set/enum';
import TableContext, { TableContextValue } from '../TableContext';
import DataSet from '../../data-set';
import { PaginationProps } from '../../pagination/Pagination';
export interface TableQueryBarProps {
    buttons?: Buttons[];
    queryFields?: {
        [key: string]: ReactElement<any>;
    };
    queryFieldsLimit?: number;
    buttonsLimit?: number;
    summaryFieldsLimit?: number;
    summaryBarFieldWidth?: number;
    showQueryBar?: boolean;
    pagination?: ReactElement<PaginationProps>;
    summaryBar?: SummaryBar[];
    dynamicFilterBar?: DynamicFilterBarConfig;
    filterBarFieldName?: string;
    filterBarPlaceholder?: string;
    searchCode?: string;
    clientExportQuantity?: number;
    onQuery?: () => void;
    onReset?: () => void;
    treeQueryExpanded?: boolean;
    comboFilterBar?: ComboFilterBarConfig;
}
export default class TableQueryBar extends Component<TableQueryBarProps> {
    static displayName: string;
    static get contextType(): typeof TableContext;
    context: TableContextValue;
    exportModal: any;
    exportDataSet: DataSet;
    exportData: any;
    queryFieldsElement: ReactElement<any>[];
    /**
     * 多行汇总
     */
    moreSummary: ReactElement[] | undefined;
    static defaultProps: {
        summaryBarFieldWidth: number;
    };
    get showQueryBar(): boolean;
    componentWillUnmount(): void;
    handleButtonCreate(): void;
    handleButtonSubmit(): Promise<any>;
    handleButtonDelete(): Promise<any>;
    handleButtonRemove(): void;
    handleButtonReset(): void;
    handleQueryReset(): void;
    handleExpandAll(): void;
    handleCollapseAll(): void;
    handleChangeExportStrategy(value: any): void;
    handleButtonExport(): Promise<void>;
    handleQuery(): Promise<any>;
    handleExport(): boolean;
    handleExportButton(data: DataSetExportStatus, filename?: string): void;
    getButtonProps(type: TableButtonType): (ButtonProps & {
        onClick: MouseEventHandler<any>;
        children?: ReactNode;
    }) | undefined;
    /**
     * 渲染表头汇总列
     * @param summary
     */
    renderSummary(summary?: SummaryBar[]): ReactElement[] | undefined;
    /**
     * 点击汇总条展开收起
     * @param summary
     */
    openMore: (summary?: SummaryBar[] | undefined) => React.ReactElement<any, string | ((props: any) => React.ReactElement<any, any> | null) | (new (props: any) => React.Component<any, any, any>)>[] | undefined;
    /**
     * 汇总条展开收起按钮
     * @param summary
     */
    getMoreSummaryButton(summary: SummaryBar[]): JSX.Element | undefined;
    /**
     * 渲染汇总条
     */
    getSummaryBar(): ReactElement<any> | undefined;
    /**
     * buttons 大于 buttonsLimits 放入下拉
     * @param buttonsLimits
     * @param hasCombineSort
     */
    getMoreButton(buttonsLimits: number, hasCombineSort?: boolean): ReactElement;
    getButtons(): ReactElement<ButtonProps>[];
    getQueryFields(): ReactElement<any>[];
    getSortableFieldNames(): string[];
    renderToolBar(props: TableQueryBarHookProps): JSX.Element;
    renderFilterBar(props: TableQueryBarHookProps): JSX.Element;
    renderAdvancedQueryBar(props: TableQueryBarHookProps): JSX.Element;
    renderProfessionalBar(props: TableQueryBarHookProps): JSX.Element;
    renderDynamicFilterBar(props: TableQueryBarHookProps): JSX.Element;
    renderComboBar(props: TableQueryBarHookProps): JSX.Element;
    expandTree(): void;
    collapseTree(): void;
    render(): {} | null | undefined;
}
