import { PropType } from 'vue';
import { GetMenuListFunc, ICommonItem, ISearchItem, SearchInputMode, SearchLogical, SelectedItem, ValidateValuesFunc, ValueBehavior } from './utils';
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    data: {
        type: PropType<ISearchItem[]>;
        required: true;
    };
    selectedList: {
        type: PropType<SelectedItem[]>;
        required: true;
    };
    overflowIndex: {
        type: NumberConstructor;
        default: number;
    };
    maxHeight: {
        type: NumberConstructor;
        default: () => number;
    };
    conditions: {
        type: PropType<ICommonItem[]>;
        default: () => any[];
    };
    getMenuList: PropType<GetMenuListFunc>;
    validateValues: PropType<ValidateValuesFunc>;
    valueBehavior: PropType<ValueBehavior>;
}>, {
    inputRef: import("vue").Ref<import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
        data: {
            type: PropType<ISearchItem[]>;
            required: true;
        };
        showInputBefore: BooleanConstructor;
        showCondition: BooleanConstructor;
        clickOutside: FunctionConstructor;
        placeholder: StringConstructor;
        conditions: {
            type: PropType<ICommonItem[]>;
            default: () => any[];
        };
        defaultUsingItem: PropType<SelectedItem>;
        mode: {
            type: PropType<SearchInputMode>;
            default: SearchInputMode;
        };
        maxHeight: {
            type: NumberConstructor;
            default: () => number;
        };
        getMenuList: PropType<GetMenuListFunc>;
        validateValues: PropType<ValidateValuesFunc>;
        valueBehavior: PropType<ValueBehavior>;
    }>> & Readonly<{
        onFocus?: (...args: any[]) => any;
        onAdd?: (...args: any[]) => any;
        onDelete?: (...args: any[]) => any;
        onSelectKey?: (...args: any[]) => any;
    }>, {
        popoverRef: import("vue").Ref<HTMLDivElement, HTMLDivElement>;
        inputRef: import("vue").Ref<HTMLDivElement, HTMLDivElement>;
        keyword: import("vue").Ref<string, string>;
        loading: import("vue").Ref<boolean, boolean>;
        remoteMenuList: import("vue").Ref<{
            id: string;
            name: string;
            disabled?: boolean;
            realId?: string;
            value?: {
                name: string;
                id: string;
                realId?: string;
                isSelected?: boolean;
                logical?: SearchLogical;
            };
            isSelected?: boolean;
            logical?: SearchLogical;
        }[], ICommonItem[] | {
            id: string;
            name: string;
            disabled?: boolean;
            realId?: string;
            value?: {
                name: string;
                id: string;
                realId?: string;
                isSelected?: boolean;
                logical?: SearchLogical;
            };
            isSelected?: boolean;
            logical?: SearchLogical;
        }[]>;
        menuList: import("vue").Ref<ISearchItem[], ISearchItem[]>;
        menuHoverId: import("vue").Ref<string, string>;
        isFocus: import("vue").Ref<boolean, boolean>;
        isComposition: import("vue").Ref<boolean, boolean>;
        usingItem: import("vue").Ref<SelectedItem, SelectedItem>;
        showPopover: import("vue").Ref<boolean, boolean>;
        showNoSelectValueError: import("vue").Ref<boolean, boolean>;
        debounceSetMenuList: {
            (this: any): any;
            cancel(): void;
        };
        documentArrowEvent: (e: KeyboardEvent) => void;
        handleClickOutside: (e: MouseEvent) => void;
        handleInputFocus: (event?: FocusEvent) => void;
        handleInputChange: (event: Event) => void;
        handleInputPaste: (event: ClipboardEvent) => void;
        handleLogicalChange: (logical: SearchLogical) => void;
        handleInputKeyup: (event: KeyboardEvent) => void;
        handleSelectItem: (item: ICommonItem, type?: import("./utils").SearchItemType) => Promise<void>;
        handleSelectConditionItem: (item: ICommonItem) => void;
        handleMenuFooterClick: (item: import("./utils").IMenuFooterItem) => void;
        resolveClassName: (cls: string) => string;
        inputFocusForWrapper: () => void;
        inputEnterForWrapper: () => Promise<void>;
        inputClearForWrapper: () => void;
        deleteInputTextNode: () => void;
        customPanelSubmit: (value: string) => void;
        refreshMenuHover: () => void;
        t: import("vue").ComputedRef<{
            pleaseSelect: string;
            loading: string;
            filterQueryMustHasValue: string;
            ok: string;
            cancel: string;
            or: string;
            and: string;
            logical: string;
        }>;
        inputKey: import("vue").Ref<string, string>;
        handleCompositionEnd: (event: CompositionEvent) => void;
        handleCompositionStart: () => void;
        handleInputCopy: (event: ClipboardEvent) => void;
    }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("focus" | "add" | "delete" | "selectKey")[], import("vue").PublicProps, {
        mode: SearchInputMode;
        maxHeight: number;
        conditions: ICommonItem[];
        showInputBefore: boolean;
        showCondition: boolean;
    }, true, {}, import("vue").SlotsType<{
        menu: import("./utils").MenuSlotParams;
    }>, import("vue").GlobalComponents, {
        clickoutside: import("vue").ObjectDirective<any, any, string, any>;
    } & import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue").ExtractPropTypes<{
        data: {
            type: PropType<ISearchItem[]>;
            required: true;
        };
        showInputBefore: BooleanConstructor;
        showCondition: BooleanConstructor;
        clickOutside: FunctionConstructor;
        placeholder: StringConstructor;
        conditions: {
            type: PropType<ICommonItem[]>;
            default: () => any[];
        };
        defaultUsingItem: PropType<SelectedItem>;
        mode: {
            type: PropType<SearchInputMode>;
            default: SearchInputMode;
        };
        maxHeight: {
            type: NumberConstructor;
            default: () => number;
        };
        getMenuList: PropType<GetMenuListFunc>;
        validateValues: PropType<ValidateValuesFunc>;
        valueBehavior: PropType<ValueBehavior>;
    }>> & Readonly<{
        onFocus?: (...args: any[]) => any;
        onAdd?: (...args: any[]) => any;
        onDelete?: (...args: any[]) => any;
        onSelectKey?: (...args: any[]) => any;
    }>, {
        popoverRef: import("vue").Ref<HTMLDivElement, HTMLDivElement>;
        inputRef: import("vue").Ref<HTMLDivElement, HTMLDivElement>;
        keyword: import("vue").Ref<string, string>;
        loading: import("vue").Ref<boolean, boolean>;
        remoteMenuList: import("vue").Ref<{
            id: string;
            name: string;
            disabled?: boolean;
            realId?: string;
            value?: {
                name: string;
                id: string;
                realId?: string;
                isSelected?: boolean;
                logical?: SearchLogical;
            };
            isSelected?: boolean;
            logical?: SearchLogical;
        }[], ICommonItem[] | {
            id: string;
            name: string;
            disabled?: boolean;
            realId?: string;
            value?: {
                name: string;
                id: string;
                realId?: string;
                isSelected?: boolean;
                logical?: SearchLogical;
            };
            isSelected?: boolean;
            logical?: SearchLogical;
        }[]>;
        menuList: import("vue").Ref<ISearchItem[], ISearchItem[]>;
        menuHoverId: import("vue").Ref<string, string>;
        isFocus: import("vue").Ref<boolean, boolean>;
        isComposition: import("vue").Ref<boolean, boolean>;
        usingItem: import("vue").Ref<SelectedItem, SelectedItem>;
        showPopover: import("vue").Ref<boolean, boolean>;
        showNoSelectValueError: import("vue").Ref<boolean, boolean>;
        debounceSetMenuList: {
            (this: any): any;
            cancel(): void;
        };
        documentArrowEvent: (e: KeyboardEvent) => void;
        handleClickOutside: (e: MouseEvent) => void;
        handleInputFocus: (event?: FocusEvent) => void;
        handleInputChange: (event: Event) => void;
        handleInputPaste: (event: ClipboardEvent) => void;
        handleLogicalChange: (logical: SearchLogical) => void;
        handleInputKeyup: (event: KeyboardEvent) => void;
        handleSelectItem: (item: ICommonItem, type?: import("./utils").SearchItemType) => Promise<void>;
        handleSelectConditionItem: (item: ICommonItem) => void;
        handleMenuFooterClick: (item: import("./utils").IMenuFooterItem) => void;
        resolveClassName: (cls: string) => string;
        inputFocusForWrapper: () => void;
        inputEnterForWrapper: () => Promise<void>;
        inputClearForWrapper: () => void;
        deleteInputTextNode: () => void;
        customPanelSubmit: (value: string) => void;
        refreshMenuHover: () => void;
        t: import("vue").ComputedRef<{
            pleaseSelect: string;
            loading: string;
            filterQueryMustHasValue: string;
            ok: string;
            cancel: string;
            or: string;
            and: string;
            logical: string;
        }>;
        inputKey: import("vue").Ref<string, string>;
        handleCompositionEnd: (event: CompositionEvent) => void;
        handleCompositionStart: () => void;
        handleInputCopy: (event: ClipboardEvent) => void;
    }, {}, {}, {}, {
        mode: SearchInputMode;
        maxHeight: number;
        conditions: ICommonItem[];
        showInputBefore: boolean;
        showCondition: boolean;
    }>, import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
        data: {
            type: PropType<ISearchItem[]>;
            required: true;
        };
        showInputBefore: BooleanConstructor;
        showCondition: BooleanConstructor;
        clickOutside: FunctionConstructor;
        placeholder: StringConstructor;
        conditions: {
            type: PropType<ICommonItem[]>;
            default: () => any[];
        };
        defaultUsingItem: PropType<SelectedItem>;
        mode: {
            type: PropType<SearchInputMode>;
            default: SearchInputMode;
        };
        maxHeight: {
            type: NumberConstructor;
            default: () => number;
        };
        getMenuList: PropType<GetMenuListFunc>;
        validateValues: PropType<ValidateValuesFunc>;
        valueBehavior: PropType<ValueBehavior>;
    }>> & Readonly<{
        onFocus?: (...args: any[]) => any;
        onAdd?: (...args: any[]) => any;
        onDelete?: (...args: any[]) => any;
        onSelectKey?: (...args: any[]) => any;
    }>, {
        popoverRef: import("vue").Ref<HTMLDivElement, HTMLDivElement>;
        inputRef: import("vue").Ref<HTMLDivElement, HTMLDivElement>;
        keyword: import("vue").Ref<string, string>;
        loading: import("vue").Ref<boolean, boolean>;
        remoteMenuList: import("vue").Ref<{
            id: string;
            name: string;
            disabled?: boolean;
            realId?: string;
            value?: {
                name: string;
                id: string;
                realId?: string;
                isSelected?: boolean;
                logical?: SearchLogical;
            };
            isSelected?: boolean;
            logical?: SearchLogical;
        }[], ICommonItem[] | {
            id: string;
            name: string;
            disabled?: boolean;
            realId?: string;
            value?: {
                name: string;
                id: string;
                realId?: string;
                isSelected?: boolean;
                logical?: SearchLogical;
            };
            isSelected?: boolean;
            logical?: SearchLogical;
        }[]>;
        menuList: import("vue").Ref<ISearchItem[], ISearchItem[]>;
        menuHoverId: import("vue").Ref<string, string>;
        isFocus: import("vue").Ref<boolean, boolean>;
        isComposition: import("vue").Ref<boolean, boolean>;
        usingItem: import("vue").Ref<SelectedItem, SelectedItem>;
        showPopover: import("vue").Ref<boolean, boolean>;
        showNoSelectValueError: import("vue").Ref<boolean, boolean>;
        debounceSetMenuList: {
            (this: any): any;
            cancel(): void;
        };
        documentArrowEvent: (e: KeyboardEvent) => void;
        handleClickOutside: (e: MouseEvent) => void;
        handleInputFocus: (event?: FocusEvent) => void;
        handleInputChange: (event: Event) => void;
        handleInputPaste: (event: ClipboardEvent) => void;
        handleLogicalChange: (logical: SearchLogical) => void;
        handleInputKeyup: (event: KeyboardEvent) => void;
        handleSelectItem: (item: ICommonItem, type?: import("./utils").SearchItemType) => Promise<void>;
        handleSelectConditionItem: (item: ICommonItem) => void;
        handleMenuFooterClick: (item: import("./utils").IMenuFooterItem) => void;
        resolveClassName: (cls: string) => string;
        inputFocusForWrapper: () => void;
        inputEnterForWrapper: () => Promise<void>;
        inputClearForWrapper: () => void;
        deleteInputTextNode: () => void;
        customPanelSubmit: (value: string) => void;
        refreshMenuHover: () => void;
        t: import("vue").ComputedRef<{
            pleaseSelect: string;
            loading: string;
            filterQueryMustHasValue: string;
            ok: string;
            cancel: string;
            or: string;
            and: string;
            logical: string;
        }>;
        inputKey: import("vue").Ref<string, string>;
        handleCompositionEnd: (event: CompositionEvent) => void;
        handleCompositionStart: () => void;
        handleInputCopy: (event: ClipboardEvent) => void;
    }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("focus" | "add" | "delete" | "selectKey")[], import("vue").PublicProps, {
        mode: SearchInputMode;
        maxHeight: number;
        conditions: ICommonItem[];
        showInputBefore: boolean;
        showCondition: boolean;
    }, true, {}, import("vue").SlotsType<{
        menu: import("./utils").MenuSlotParams;
    }>, import("vue").GlobalComponents, {
        clickoutside: import("vue").ObjectDirective<any, any, string, any>;
    } & import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue").ExtractPropTypes<{
        data: {
            type: PropType<ISearchItem[]>;
            required: true;
        };
        showInputBefore: BooleanConstructor;
        showCondition: BooleanConstructor;
        clickOutside: FunctionConstructor;
        placeholder: StringConstructor;
        conditions: {
            type: PropType<ICommonItem[]>;
            default: () => any[];
        };
        defaultUsingItem: PropType<SelectedItem>;
        mode: {
            type: PropType<SearchInputMode>;
            default: SearchInputMode;
        };
        maxHeight: {
            type: NumberConstructor;
            default: () => number;
        };
        getMenuList: PropType<GetMenuListFunc>;
        validateValues: PropType<ValidateValuesFunc>;
        valueBehavior: PropType<ValueBehavior>;
    }>> & Readonly<{
        onFocus?: (...args: any[]) => any;
        onAdd?: (...args: any[]) => any;
        onDelete?: (...args: any[]) => any;
        onSelectKey?: (...args: any[]) => any;
    }>, {
        popoverRef: import("vue").Ref<HTMLDivElement, HTMLDivElement>;
        inputRef: import("vue").Ref<HTMLDivElement, HTMLDivElement>;
        keyword: import("vue").Ref<string, string>;
        loading: import("vue").Ref<boolean, boolean>;
        remoteMenuList: import("vue").Ref<{
            id: string;
            name: string;
            disabled?: boolean;
            realId?: string;
            value?: {
                name: string;
                id: string;
                realId?: string;
                isSelected?: boolean;
                logical?: SearchLogical;
            };
            isSelected?: boolean;
            logical?: SearchLogical;
        }[], ICommonItem[] | {
            id: string;
            name: string;
            disabled?: boolean;
            realId?: string;
            value?: {
                name: string;
                id: string;
                realId?: string;
                isSelected?: boolean;
                logical?: SearchLogical;
            };
            isSelected?: boolean;
            logical?: SearchLogical;
        }[]>;
        menuList: import("vue").Ref<ISearchItem[], ISearchItem[]>;
        menuHoverId: import("vue").Ref<string, string>;
        isFocus: import("vue").Ref<boolean, boolean>;
        isComposition: import("vue").Ref<boolean, boolean>;
        usingItem: import("vue").Ref<SelectedItem, SelectedItem>;
        showPopover: import("vue").Ref<boolean, boolean>;
        showNoSelectValueError: import("vue").Ref<boolean, boolean>;
        debounceSetMenuList: {
            (this: any): any;
            cancel(): void;
        };
        documentArrowEvent: (e: KeyboardEvent) => void;
        handleClickOutside: (e: MouseEvent) => void;
        handleInputFocus: (event?: FocusEvent) => void;
        handleInputChange: (event: Event) => void;
        handleInputPaste: (event: ClipboardEvent) => void;
        handleLogicalChange: (logical: SearchLogical) => void;
        handleInputKeyup: (event: KeyboardEvent) => void;
        handleSelectItem: (item: ICommonItem, type?: import("./utils").SearchItemType) => Promise<void>;
        handleSelectConditionItem: (item: ICommonItem) => void;
        handleMenuFooterClick: (item: import("./utils").IMenuFooterItem) => void;
        resolveClassName: (cls: string) => string;
        inputFocusForWrapper: () => void;
        inputEnterForWrapper: () => Promise<void>;
        inputClearForWrapper: () => void;
        deleteInputTextNode: () => void;
        customPanelSubmit: (value: string) => void;
        refreshMenuHover: () => void;
        t: import("vue").ComputedRef<{
            pleaseSelect: string;
            loading: string;
            filterQueryMustHasValue: string;
            ok: string;
            cancel: string;
            or: string;
            and: string;
            logical: string;
        }>;
        inputKey: import("vue").Ref<string, string>;
        handleCompositionEnd: (event: CompositionEvent) => void;
        handleCompositionStart: () => void;
        handleInputCopy: (event: ClipboardEvent) => void;
    }, {}, {}, {}, {
        mode: SearchInputMode;
        maxHeight: number;
        conditions: ICommonItem[];
        showInputBefore: boolean;
        showCondition: boolean;
    }>>;
    selectedInputRef: import("vue").Ref<HTMLDivElement, HTMLDivElement>;
    editKey: import("vue").Ref<string, string>;
    copySelectedItem: (item: SelectedItem) => SelectedItem;
    handleDeleteSelected: (index: number) => void;
    handleEditSelected: (e: MouseEvent, item: SelectedItem, index: number) => void;
    handleInputOutside: (target: Node) => boolean;
    handleAddSelected: (item: SelectedItem, index: number) => void;
    handleInputFocus: (isFocus: boolean) => void;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "selectKey")[], "delete" | "selectKey", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    data: {
        type: PropType<ISearchItem[]>;
        required: true;
    };
    selectedList: {
        type: PropType<SelectedItem[]>;
        required: true;
    };
    overflowIndex: {
        type: NumberConstructor;
        default: number;
    };
    maxHeight: {
        type: NumberConstructor;
        default: () => number;
    };
    conditions: {
        type: PropType<ICommonItem[]>;
        default: () => any[];
    };
    getMenuList: PropType<GetMenuListFunc>;
    validateValues: PropType<ValidateValuesFunc>;
    valueBehavior: PropType<ValueBehavior>;
}>> & Readonly<{
    onDelete?: (...args: any[]) => any;
    onSelectKey?: (...args: any[]) => any;
}>, {
    maxHeight: number;
    conditions: ICommonItem[];
    overflowIndex: number;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
