import { ReactNode } from 'react';
import { Group, Number, Text, Date, Radio, Checkbox, Custom, Tree, Template } from './components';
import { ILabel, IOperator, ILabelDefault, PanelPlacement, TextValue, ITemplate } from './typings';
import 'dayjs/locale/zh-cn';
import React from 'react';
import { AlignType } from 'rc-trigger/lib/interface';
import { RuleObject } from 'bonree-design/lib/form';
export declare const RECENTLY = "recently";
export declare const TEMPLATE = "template";
export interface FilterProps {
    className?: string;
    placeholder?: string;
    onFilter: (value: ILabel[]) => void;
    defaultValue?: ILabelDefault[];
    replaceValue?: ILabel | ILabel[];
    showLabel?: boolean;
    onMenuSelect?: (value: ILabel) => void;
    onOperatorSelect?: (value: string, option: IOperator) => void;
    maxLabel?: number;
    dynamicMenu?: boolean;
    autoAdjustOverflow?: boolean;
    getPopupContainer?: (node: HTMLElement) => HTMLElement;
    placement?: PanelPlacement;
    clear?: (value: ILabel) => void;
    clearAll?: () => void;
    align?: AlignType;
    disabled?: boolean;
    FilterActiveStyle?: {
        border?: string;
        boxShadow?: string;
    };
    queryKeyword?: boolean;
    realSearch?: boolean;
    onInputSearch?: (value: string) => void;
    queryMultipleKeyword?: boolean;
    isRecentlyUsed?: boolean;
    isTemplate?: boolean;
    validatorTemplateName?: (rule: RuleObject, value: string) => void;
    templatePlacement?: PanelPlacement;
    onSaveTemplate?: (value: ITemplate) => void;
    onDeleteTemplate?: (value: ITemplate) => void;
    popoverContent?: ReactNode;
    tagNameRender?: (prop: TextValue) => ReactNode;
    noEffectLabels?: {
        keyword: string;
        tip?: ReactNode;
    }[];
    onSearch?: () => void;
    loading?: boolean;
    loadingWidth?: number;
    onBlur?: (value: ITemplate) => void;
    getTemplateData?: () => Promise<ITemplate[]>;
    filterKey?: string;
    customSearch?: ReactNode;
    refreshTemplate?: number;
    refreshRecentlyUsed?: number;
    resourceId?: string | number;
    disabledTip?: ReactNode;
    showOne?: boolean;
}
export interface FilterInterface extends React.FC<FilterProps> {
    Group: typeof Group;
    Number: typeof Number;
    Text: typeof Text;
    Date: typeof Date;
    Radio: typeof Radio;
    Checkbox: typeof Checkbox;
    Tree: typeof Tree;
    Custom: typeof Custom;
    Template: typeof Template;
}
declare const Filter: FilterInterface;
export default Filter;
