/// <reference types="lodash" />
import Vue from 'vue';
import { SelectConfig } from '../config-provider/config-receiver';
import Option from './option';
import { SelectOption, TdOptionProps, SelectValue, SelectOptionGroup } from './type';
import { ClassName } from '../common';
export declare type OptionInstance = InstanceType<typeof Option>;
declare const _default: import("vue/types/vue").ExtendedVue<{
    t<T>(pattern: T, placement?: import("../config-provider/config-receiver").Placement): string;
} & {
    global: SelectConfig;
} & Record<never, any> & import("../config-provider/config-receiver").ConfigComponent & Vue, {
    isHover: boolean;
    visible: boolean;
    searchInput: string;
    showCreateOption: boolean;
    hasOptions: boolean;
    defaultProps: import("../popup").TdPopupProps;
    focusing: boolean;
    labelInValue: boolean;
    realValue: string;
    realLabel: string;
    realOptions: TdOptionProps[];
    hoverIndex: number;
    popupOpenTime: number;
    checkScroll: boolean;
}, {
    getRealOptions(options: SelectOption[]): Array<TdOptionProps>;
    multiLimitDisabled(value: string | number): boolean;
    visibleChange(val: boolean): void;
    onOptionClick(value: string | number, e: MouseEvent | KeyboardEvent): void;
    removeTag(index: number, context?: {
        e?: MouseEvent | KeyboardEvent;
    }): void;
    hideMenu(): void;
    clearSelect(e: MouseEvent): void;
    getOptions(option: OptionInstance): void;
    destroyOptions(option: OptionInstance): void;
    emitChange(val: SelectValue | Array<SelectValue>): void;
    createOption(value: string): void;
    debounceOnRemote: import("lodash").DebouncedFunc<(this: any) => void>;
    focus(value: string, context: {
        e: FocusEvent;
    }): void;
    blur(value: string, context: {
        e: FocusEvent | KeyboardEvent;
    }): void;
    enter(value: string, context: {
        e: KeyboardEvent;
    }): void;
    keydownEvent(e: KeyboardEvent): void;
    arrowDownOption(): void;
    arrowUpOption(): void;
    hoverEvent(v: boolean): void;
    getOverlayElm(): HTMLElement;
    monitorWidth(): void;
    getEmpty(): any;
    getLoadingText(): any;
    getPlaceholderText(): string;
    getCloseIcon(): JSX.Element;
    doFocus(): void;
    renderGroupOptions(options: SelectOptionGroup[]): JSX.Element;
    renderOptions(options: SelectOption[]): JSX.Element;
    renderDataWithOptions(): JSX.Element;
    initHoverindex(): void;
}, {
    classes: ClassName;
    popClass: string;
    tipsClass: ClassName;
    emptyClass: ClassName;
    showPlaceholder: boolean;
    isGroupOption: boolean;
    filterPlaceholder: string;
    showClose: boolean;
    showArrow: boolean;
    canFilter: boolean;
    showLoading: boolean;
    showFilter: boolean;
    selectedSingle: string;
    selectedMultiple: TdOptionProps[];
    popupObject: import("../popup").TdPopupProps;
    filterOptions: TdOptionProps[];
    displayOptions: TdOptionProps[];
    displayOptionsMap: Map<TdOptionProps, boolean>;
    hoverOptions: TdOptionProps[];
}, {
    bordered: boolean;
    clearable: boolean;
    collapsedItems: (h: import("vue").CreateElement, props: {
        value: SelectOption[];
        collapsedSelectedItems: SelectOption[];
        count: number;
    }) => import("vue/types/vnode").ScopedSlotReturnValue;
    creatable: boolean;
    disabled: boolean;
    empty: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    filter: (filterWords: string, option: SelectOption) => boolean | Promise<boolean>;
    filterable: boolean;
    keys: import("./type").SelectKeysType;
    loading: boolean;
    loadingText: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    max: number;
    minCollapsedNum: number;
    multiple: boolean;
    options: SelectOption[];
    placeholder: string;
    popupProps: import("../popup").TdPopupProps;
    prefixIcon: (h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
    reserveKeyword: boolean;
    showCheckAlll: boolean;
    size: import("../common").SizeEnum;
    value: SelectValue<SelectOption>;
    defaultValue: SelectValue<SelectOption>;
    valueDisplay: (h: import("vue").CreateElement, props: {
        value: SelectOption[];
        onClose: () => void;
    }) => import("vue/types/vnode").ScopedSlotReturnValue;
    valueType: "object" | "value";
    onBlur: (context: {
        value: SelectValue<SelectOption>;
        e: FocusEvent | KeyboardEvent;
    }) => void;
    onChange: (value: SelectValue<SelectOption>) => void;
    onClear: (context: {
        e: MouseEvent;
    }) => void;
    onCreate: (value: string | number) => void;
    onEnter: (context: {
        inputValue: string;
        e: KeyboardEvent;
        value: SelectValue<SelectOption>;
    }) => void;
    onFocus: (context: {
        value: SelectValue<SelectOption>;
        e: FocusEvent | KeyboardEvent;
    }) => void;
    onRemove: (options: import("./type").SelectRemoveContext<SelectOption>) => void;
    onSearch: (filterWords: string) => void;
    onVisibleChange: (visible: boolean) => void;
}>;
export default _default;
