import React, { Component, CSSProperties, MouseEventHandler, ReactElement, ReactNode } from 'react';
import { TableFilterAdapterProps } from '../../../../lib/configure';
import Field, { Fields } from '../../data-set/Field';
import DataSet from '../../data-set/DataSet';
import Record from '../../data-set/Record';
import { ElementProps } from '../../core/ViewComponent';
import { ButtonProps } from '../../button/Button';
import { ComboFilterBarConfig } from '../Table';
import { TransportProps } from '../../data-set/Transport';
import TableContext, { TableContextValue } from '../TableContext';
export interface TableAction {
    name: ReactElement<any> | string;
    onClick?: MouseEventHandler<any>;
    disabled?: boolean;
    children?: TableAction[];
    element?: ReactElement<any>;
    style?: any;
}
export interface TableComboBarProps extends ElementProps {
    dataSet: DataSet;
    queryDataSet?: DataSet;
    queryFields: ReactElement<any>[];
    queryFieldsLimit?: number;
    buttons?: ReactElement<ButtonProps>[];
    summaryBar?: ReactElement<any>;
    comboFilterBar?: ComboFilterBarConfig;
    onQuery?: () => void;
    onReset?: () => void;
    autoQueryAfterReset?: boolean;
    fuzzyQuery?: boolean;
    fuzzyQueryPlaceholder?: string;
    searchCode?: string;
    autoQuery?: boolean;
    refreshBtn?: boolean;
    simpleMode?: boolean;
    singleLineMode?: boolean;
    inlineSearchRender?: ReactElement<any>;
    inlineSearch?: boolean;
    tableActions?: TableAction[];
    title?: string | ReactNode;
    advancedFilter?: ReactNode;
    filerMenuAction?: ReactNode;
    queryFieldsStyle?: {
        [key: string]: CSSProperties;
    };
}
export declare const CONDITIONSTATUS = "__CONDITIONSTATUS__";
export declare const SELECTFIELDS = "__SELECTFIELDS__";
export declare const MENUDATASET = "__MENUDATASET__";
export declare const CONDITIONDATASET = "__CONDITIONDATASET__";
export declare const OPTIONDATASET = "__OPTIONDATASET__";
export declare const FILTERMENUDATASET = "__FILTERMENUDATASET__";
export declare const MENURESULT = "__MENURESULT__";
export declare const SEARCHTEXT = "__SEARCHTEXT__";
export declare const SELECTCHANGE = "__SELECTCHANGE__";
export default class TableComboBar extends Component<TableComboBarProps> {
    static get contextType(): typeof TableContext;
    static defaultProps: {
        queryFieldsLimit: number;
        autoQueryAfterReset: boolean;
        fuzzyQuery: boolean;
        autoQuery: boolean;
        refreshBtn: boolean;
        buttons: never[];
        simpleMode: boolean;
        singleLineMode: boolean;
    };
    context: TableContextValue;
    get prefixCls(): string;
    get queryFields(): React.ReactElement<any>[];
    moreFields: Field[];
    /**
     * 控制添加筛选下拉显隐
     */
    fieldSelectHidden: boolean;
    /**
     * 搜索值
     */
    searchText: string;
    shouldLocateData: boolean;
    refDropdown: HTMLDivElement | null;
    refEditors: Map<string, any>;
    originalValue: object;
    originalConditionFields: string[];
    tempFields: Fields;
    constructor(props: any, context: any);
    componentDidMount(): void;
    componentWillUnmount(): void;
    componentWillReceiveProps(nextProps: Readonly<TableComboBarProps>): void;
    processDataSetListener(flag: boolean, nextProps?: TableComboBarProps): void;
    handleClickOut: (e: any) => void;
    handleTableHeight: () => void;
    handleResize: () => void;
    handleDataSetQuery({ dataSet }: {
        dataSet: any;
    }): Promise<false | undefined>;
    /**
     * queryDataSet 查询前校验事件 触发展开动态字段
     * @param dataSet 查询DS
     * @param result
     */
    handleDataSetValidate({ dataSet, result }: {
        dataSet: any;
        result: any;
    }): Promise<void>;
    setConditionStatus(value: any, orglValue?: object): void;
    setOriginalConditionFields: (code: any) => void;
    /**
     * 筛选条件更新 触发表格查询
     */
    handleDataSetUpdate({ record, name, oldValue, value }: {
        record: any;
        name: any;
        oldValue: any;
        value: any;
    }): Promise<void>;
    /**
     * queryDS 新建，初始勾选值
     */
    handleDataSetCreate(): void;
    /**
     * 初始化勾选值、条件字段
     * @param props
     */
    initConditionFields(props: any): void;
    /**
     * 初始筛选条数据源状态
     */
    initMenuDataSet(): Promise<boolean>;
    /**
     * tableFilterSuffix 预留自定义区域
     */
    renderSuffix(): (JSX.Element | null)[] | null;
    getPrefix(): ReactNode;
    /**
     * 注入 refEditors
     * @param element
     * @param name
     * @param field
     */
    createFields(element: any, name: any, field: any): ReactElement;
    /**
     * 判断查询值是否为空
     * @param value
     */
    isEmpty(value: any): boolean;
    get tableFilterAdapter(): TransportProps | TableFilterAdapterProps | null | undefined;
    get initSearchId(): number | null | undefined;
    get filterCallback(): ((searchId: string) => void) | undefined;
    get filterSave(): boolean | undefined;
    get filterSaveCallback(): ((any: any) => void) | undefined;
    get filterOptionRenderer(): ((searchId: any, searchIcon: any, text: any) => React.ReactNode) | undefined;
    dynamicLimit(): number;
    updateQueryFields(): React.ReactElement<any>[];
    updateOriginOrderQueryFields(): Field[];
    /**
     * 勾选
     * @param code
     * @param record
     */
    handleSelect: (code: any, record?: Record | undefined) => void;
    /**
     * 取消勾选
     * @param code
     */
    handleUnSelect: (code: any) => void;
    /**
     * 查询前修改提示及校验定位
     */
    modifiedCheckQuery(): Promise<void>;
    renderRefreshBtn(): ReactNode;
    /**
     * 渲染模糊搜索
     */
    getFuzzyQuery(): ReactNode;
    /**
     * 渲染重置按钮
     */
    getResetButton(): JSX.Element;
    /**
     * 筛选头
     * fuzzyQuery + quickFilterMenu + resetButton + buttons
     */
    getFilterMenu(): ReactNode;
    getFilterButton(): ReactNode;
    /**
     * 查询字段初始顺序
     * 排除动态属性影响
     */
    get originOrderQueryFields(): Field[];
    /**
     * 渲染查询条
     */
    getQueryBar(): ReactNode;
    handleQuery(collapse?: boolean): Promise<void>;
    render(): JSX.Element | ({} | undefined)[];
}
