import { PropType } from 'vue';
declare const VueSelect: import("vue").DefineComponent<{
    modelValue: {
        required: true;
    };
    emptyModelValue: {};
    options: {
        required: true;
        type: ArrayConstructor;
    };
    labelBy: {
        type: (StringConstructor | FunctionConstructor)[];
    };
    valueBy: {
        type: (StringConstructor | FunctionConstructor)[];
    };
    disabledBy: {
        default: string;
        type: (StringConstructor | FunctionConstructor)[];
    };
    groupBy: {
        default: string;
        type: (StringConstructor | FunctionConstructor)[];
    };
    visibleOptions: {
        type: ArrayConstructor;
        default: null;
    };
    multiple: {
        default: boolean;
        type: BooleanConstructor;
    };
    min: {
        default: number;
        type: NumberConstructor;
    };
    max: {
        default: number;
        type: NumberConstructor;
    };
    searchable: {
        default: boolean;
        type: BooleanConstructor;
    };
    searchPlaceholder: {
        default: string;
        type: StringConstructor;
    };
    clearOnSelect: {
        default: boolean;
        type: BooleanConstructor;
    };
    clearOnClose: {
        default: boolean;
        type: BooleanConstructor;
    };
    taggable: {
        default: boolean;
        type: BooleanConstructor;
    };
    collapseTags: {
        default: boolean;
        type: BooleanConstructor;
    };
    autocomplete: {
        default: string;
        type: StringConstructor;
    };
    disabled: {
        default: boolean;
        type: BooleanConstructor;
    };
    loading: {
        default: boolean;
        type: BooleanConstructor;
    };
    closeOnSelect: {
        default: boolean;
        type: BooleanConstructor;
    };
    hideSelected: {
        default: boolean;
        type: BooleanConstructor;
    };
    placeholder: {
        default: string;
        type: StringConstructor;
    };
    tabindex: {
        default: number;
        type: NumberConstructor;
    };
    autofocus: {
        default: boolean;
        type: BooleanConstructor;
    };
    maxHeight: {
        default: number;
        type: NumberConstructor;
    };
    openDirection: {
        type: PropType<"top" | "bottom">;
        validator: (value: string) => boolean;
    };
}, {
    instance: import("vue").ComponentInternalInstance | null;
    isFocusing: import("vue").Ref<boolean>;
    wrapper: import("vue").Ref<any>;
    dropdown: import("vue").Ref<any>;
    input: import("vue").Ref<any>;
    focus: () => void;
    blur: (e?: any) => void;
    toggle: () => void;
    searchingInputValue: import("vue").Ref<string>;
    handleInputForInput: (event: any) => void;
    handleChangeForInput: (event: any) => void;
    handleFocusForInput: (event: any) => void;
    handleBlurForInput: (event: any) => void;
    optionsWithInfo: import("vue").ComputedRef<any>;
    addOrRemoveOption: (event: any, option: any) => void;
    dataAttrs: import("vue").ComputedRef<{
        'data-is-focusing': boolean;
        'data-visible-length': any;
        'data-not-selected-length': number;
        'data-selected-length': any;
        'data-addable': boolean;
        'data-removable': boolean;
        'data-total-length': any;
        'data-multiple': boolean;
        'data-loading': boolean;
        'data-disabled': boolean;
    }>;
    innerPlaceholder: import("vue").ComputedRef<string>;
    selected: import("vue").ComputedRef<any>;
    highlightedOriginalIndex: import("vue").Ref<number>;
    pointerForward: () => void;
    pointerBackward: () => void;
    pointerFirst: () => void;
    pointerLast: () => void;
    typeAhead: (event: any) => void;
    pointerSet: (originalIndex: number) => boolean;
    direction: import("vue").Ref<any>;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("selected" | "removed" | "update:modelValue" | "focus" | "blur" | "toggle" | "opened" | "closed" | "search:input" | "search:change" | "search:focus" | "search:blur")[], "selected" | "removed" | "update:modelValue" | "focus" | "blur" | "toggle" | "opened" | "closed" | "search:input" | "search:change" | "search:focus" | "search:blur", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
    modelValue?: unknown;
    emptyModelValue?: unknown;
    options?: unknown;
    labelBy?: unknown;
    valueBy?: unknown;
    disabledBy?: unknown;
    groupBy?: unknown;
    visibleOptions?: unknown;
    multiple?: unknown;
    min?: unknown;
    max?: unknown;
    searchable?: unknown;
    searchPlaceholder?: unknown;
    clearOnSelect?: unknown;
    clearOnClose?: unknown;
    taggable?: unknown;
    collapseTags?: unknown;
    autocomplete?: unknown;
    disabled?: unknown;
    loading?: unknown;
    closeOnSelect?: unknown;
    hideSelected?: unknown;
    placeholder?: unknown;
    tabindex?: unknown;
    autofocus?: unknown;
    maxHeight?: unknown;
    openDirection?: unknown;
} & {
    disabled: boolean;
    modelValue: unknown;
    options: unknown[];
    disabledBy: string | Function;
    groupBy: string | Function;
    visibleOptions: unknown[];
    multiple: boolean;
    min: number;
    max: number;
    searchable: boolean;
    searchPlaceholder: string;
    clearOnSelect: boolean;
    clearOnClose: boolean;
    taggable: boolean;
    collapseTags: boolean;
    autocomplete: string;
    loading: boolean;
    closeOnSelect: boolean;
    hideSelected: boolean;
    placeholder: string;
    tabindex: number;
    autofocus: boolean;
    maxHeight: number;
} & {
    emptyModelValue?: unknown;
    labelBy?: string | Function | undefined;
    valueBy?: string | Function | undefined;
    openDirection?: "top" | "bottom" | undefined;
}> & {
    onSelected?: ((...args: any[]) => any) | undefined;
    onRemoved?: ((...args: any[]) => any) | undefined;
    "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
    onFocus?: ((...args: any[]) => any) | undefined;
    onBlur?: ((...args: any[]) => any) | undefined;
    onToggle?: ((...args: any[]) => any) | undefined;
    onOpened?: ((...args: any[]) => any) | undefined;
    onClosed?: ((...args: any[]) => any) | undefined;
    "onSearch:input"?: ((...args: any[]) => any) | undefined;
    "onSearch:change"?: ((...args: any[]) => any) | undefined;
    "onSearch:focus"?: ((...args: any[]) => any) | undefined;
    "onSearch:blur"?: ((...args: any[]) => any) | undefined;
}, {
    disabled: boolean;
    disabledBy: string | Function;
    groupBy: string | Function;
    visibleOptions: unknown[];
    multiple: boolean;
    min: number;
    max: number;
    searchable: boolean;
    searchPlaceholder: string;
    clearOnSelect: boolean;
    clearOnClose: boolean;
    taggable: boolean;
    collapseTags: boolean;
    autocomplete: string;
    loading: boolean;
    closeOnSelect: boolean;
    hideSelected: boolean;
    placeholder: string;
    tabindex: number;
    autofocus: boolean;
    maxHeight: number;
}>;
export default VueSelect;
