import React, { Component, ReactElement, ReactNode } from 'react';
import Field from '../../data-set/Field';
import DataSet from '../../data-set';
import { RecordStatus } from '../../data-set/enum';
import { ElementProps } from '../../core/ViewComponent';
import { DynamicFilterBarConfig } from '../Table.d';
export interface TableDynamicFilterBarProps extends ElementProps {
    dataSet: DataSet;
    queryDataSet?: DataSet;
    queryFields: ReactElement<any>[];
    queryFieldsLimit?: number;
    dynamicFilterBar?: DynamicFilterBarConfig;
    onQuery?: (props: object) => void;
    onReset?: () => void;
}
export default class TableDynamicFilterBar extends Component<TableDynamicFilterBarProps> {
    static contextType: React.Context<import("../TableContext").Props>;
    static defaultProps: {
        prefixCls: string;
        queryFieldsLimit: number;
    };
    moreFields: Field[];
    /**
     * 控制添加筛选下拉显隐
     */
    fieldSelectHidden: boolean;
    /**
     * 勾选字段
     */
    selectFields: string[];
    /**
     * 收起/展开
     */
    expand: boolean;
    /**
     * 搜索值
     */
    searchText: string;
    /**
     * 条件状态
     */
    conditionStatus: RecordStatus;
    refDropdown: HTMLDivElement | null;
    refFilterWrapper: HTMLDivElement | null;
    refEditors: Map<string, any>;
    originalValue: object;
    originalConditionKeys: string[];
    enterNum: number;
    constructor(props: any, context: any);
    componentDidMount(): void;
    componentWillUnmount(): void;
    processDataSetListener(flag: boolean): void;
    handleClickOut: (e: any) => void;
    /**
     * queryDataSet 查询前校验事件 触发展开动态字段
     * @param dataSet 查询DS
     * @param result
     */
    handleDataSetValidate({ dataSet, result }: {
        dataSet: any;
        result: any;
    }): Promise<void>;
    setConditionStatus(value: any, orglValue?: object): void;
    /**
     * 筛选条件更新 触发表格查询
     */
    handleDataSetUpdate({ record }: {
        record: any;
    }): void;
    /**
     * queryDS 新建，初始勾选值
     */
    handleDataSetCreate({ dataSet, record }: {
        dataSet: any;
        record: any;
    }): void;
    /**
     * 注入 onEnterDown 事件
     * @param element
     * @param name
     */
    createFields(element: any, name: any): ReactElement;
    /**
     * 判断查询值是否为空
     * @param value
     */
    isEmpty(value: any): boolean;
    /**
     * 勾选
     * @param code
     */
    handleSelect: (code: any) => void;
    /**
     * 取消勾选
     * @param code
     */
    handleUnSelect: (code: any) => void;
    /**
     * 渲染展开逻辑
     * @param hidden 是否隐藏全部
     */
    getExpandNode(hidden: any): ReactNode;
    /**
     * 获取筛选下拉
     */
    getFilterMenu(): ReactNode;
    /**
     * tableFilterSuffix 预留自定义区域
     */
    renderSuffix(): JSX.Element | null;
    renderPrefix(): JSX.Element | null;
    /**
     * 渲染查询条
     */
    getQueryBar(): ReactNode;
    handleQuery(collapse?: boolean): void;
    render(): React.ReactNode;
}
