import { SearchInputMode, SearchLogical, ValueBehavior, SelectedItem } from './utils';
import type { GetMenuListFunc, ICommonItem, IMenuFooterItem, ISearchItem, MenuSlotParams, SearchItemType, ValidateValuesFunc } from './utils';
import type { PropType, Ref, SlotsType } from 'vue';
declare const _default: import("vue").DefineComponent<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>;
}>, {
    popoverRef: Ref<HTMLDivElement, HTMLDivElement>;
    inputRef: Ref<HTMLDivElement, HTMLDivElement>;
    keyword: Ref<string, string>;
    loading: Ref<boolean, boolean>;
    remoteMenuList: 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: Ref<ISearchItem[], ISearchItem[]>;
    menuHoverId: Ref<string, string>;
    isFocus: Ref<boolean, boolean>;
    isComposition: Ref<boolean, boolean>;
    usingItem: Ref<SelectedItem, SelectedItem>;
    showPopover: Ref<boolean, boolean>;
    showNoSelectValueError: 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?: SearchItemType) => Promise<void>;
    handleSelectConditionItem: (item: ICommonItem) => void;
    handleMenuFooterClick: (item: 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: Ref<string, string>;
    handleCompositionEnd: (event: CompositionEvent) => void;
    handleCompositionStart: () => void;
    handleInputCopy: (event: ClipboardEvent) => void;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("focus" | "add" | "delete" | "selectKey")[], "focus" | "add" | "delete" | "selectKey", import("vue").PublicProps, 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;
}>, {
    mode: SearchInputMode;
    maxHeight: number;
    conditions: ICommonItem[];
    showInputBefore: boolean;
    showCondition: boolean;
}, SlotsType<{
    menu: MenuSlotParams;
}>, {}, {
    clickoutside: import("vue").ObjectDirective<any, any, string, any>;
}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
