import { Effect } from 'element-plus/es/components/popper';
import type { SelectProps } from './defaults';
import type { ExtractPropTypes, CSSProperties } from 'vue';
import type { Option } from './select.types';
declare const useSelect: (props: ExtractPropTypes<typeof SelectProps>, emit: any) => {
    collapseTagSize: import("vue").ComputedRef<"small" | "mini">;
    currentPlaceholder: import("vue").ComputedRef<string>;
    expanded: import("vue").Ref<boolean>;
    emptyText: import("vue").ComputedRef<string | false | null>;
    popupHeight: import("vue").ComputedRef<number>;
    debounce: import("vue").ComputedRef<0 | 300>;
    filteredOptions: import("vue").ComputedRef<never[]>;
    iconComponent: import("vue").ComputedRef<"" | import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{}>, {}>>;
    iconReverse: import("vue").ComputedRef<"" | "is-reverse">;
    inputWrapperStyle: import("vue").ComputedRef<CSSProperties>;
    popperSize: import("vue").Ref<number>;
    dropdownMenuVisible: import("vue").ComputedRef<boolean>;
    shouldShowPlaceholder: import("vue").ComputedRef<boolean>;
    selectDisabled: import("vue").ComputedRef<boolean | undefined>;
    selectSize: import("vue").ComputedRef<any>;
    showClearBtn: import("vue").ComputedRef<boolean>;
    states: {
        inputValue: string;
        displayInputValue: string;
        calculatedWidth: number;
        cachedPlaceholder: string;
        cachedOptions: {
            [x: string]: any;
            label: string;
            created?: boolean | undefined;
            value: any;
        }[];
        createdOptions: {
            [x: string]: any;
            label: string;
            created?: boolean | undefined;
            value: any;
        }[];
        createdLabel: string;
        createdSelected: boolean;
        currentPlaceholder: string;
        hoveringIndex: number;
        comboBoxHovering: boolean;
        isOnComposition: boolean;
        isSilentBlur: boolean;
        isComposing: boolean;
        inputLength: number;
        selectWidth: number;
        initialInputHeight: number;
        previousQuery: null;
        previousValue: string;
        query: string;
        selectedLabel: string;
        softFocus: boolean;
        tagInMultiLine: boolean;
    };
    tagMaxWidth: import("vue").ComputedRef<number>;
    calculatorRef: import("vue").Ref<HTMLElement>;
    controlRef: import("vue").Ref<null>;
    inputRef: import("vue").Ref<null>;
    menuRef: import("vue").Ref<null>;
    popper: import("vue").Ref<null>;
    selectRef: import("vue").Ref<null>;
    selectionRef: import("vue").Ref<null>;
    popperRef: import("vue").ComputedRef<any>;
    Effect: typeof Effect;
    debouncedOnInputChange: import("lodash").DebouncedFunc<() => Promise<void>>;
    deleteTag: (event: MouseEvent, tag: Option) => Promise<void> | undefined;
    getLabel: (item: unknown) => any;
    getValueKey: (item: unknown) => unknown;
    handleBlur: () => Promise<void>;
    handleClear: () => Promise<void>;
    handleClickOutside: () => Promise<void>;
    handleDel: (e: KeyboardEvent) => void;
    handleEsc: () => void;
    handleFocus: (event: FocusEvent) => void;
    handleMenuEnter: () => Promise<void>;
    handleResize: () => Promise<void> | undefined;
    toggleMenu: () => Promise<void> | undefined;
    scrollTo: (index: number) => void;
    onInput: (event: any) => Promise<void> | undefined;
    onKeyboardNavigate: (direction: 'forward' | 'backward', hoveringIndex?: number) => any;
    onKeyboardSelect: () => Promise<void> | undefined;
    onSelect: (option: Option, idx: number, byClick?: boolean) => void;
    onHover: (idx: number) => void;
    onUpdateInputValue: (val: string) => void;
    handleCompositionStart: () => void;
    handleCompositionEnd: (event: any) => void;
    handleCompositionUpdate: (event: any) => void;
};
export default useSelect;
