import { InjectionKey, Ref } from 'vue';
import { IOptionGroupContext, IPopoverConfig, ISelectContext } from './type';
export declare const selectKey: InjectionKey<ISelectContext>;
export declare const optionGroupKey: InjectionKey<IOptionGroupContext>;
export declare function useHover(): {
    isHover: Ref<boolean, boolean>;
    setHover: () => void;
    cancelHover: () => void;
};
export declare function useRegistry<T>(data: Ref<Map<PropertyKey, T>>): {
    register: (key: string, item: T) => Map<PropertyKey, T>;
    unregister: (key: string, item?: T) => void;
};
export declare function usePopover(config: IPopoverConfig, triggerRef: Ref<HTMLElement>): {
    isPopoverShow: Ref<boolean, boolean>;
    popperWidth: Ref<string | number, string | number>;
    togglePopover: () => void;
    hidePopover: () => void;
    showPopover: () => void;
};
export declare function useRemoteSearch(method: (v: string) => Promise<void>, callBack?: () => void): {
    customOptionName: Ref<string, string>;
    searchValue: Ref<string, string>;
    curSearchValue: import("vue").ComputedRef<string>;
    searchLoading: Ref<boolean, boolean>;
};
export declare function toLowerCase(value?: string): string;
export declare function isInViewPort(el: HTMLElement, client: HTMLElement): boolean;
