import { DefaultOptionType, SelectValue, LabeledValue } from '@aplus-frontend/antdv/es/select';
import { ApFieldSelectProps } from '../interface';
import { CreateComponentPublicInstanceWithMixins, ExtractPropTypes, PropType, CSSProperties, ComponentOptionsMixin, PublicProps, GlobalComponents, GlobalDirectives, ComponentProvideOptions, DefineComponent } from 'vue';
import { VueTypeValidableDef } from '../../../node_modules/vue-types';
import { ButtonSize } from '@aplus-frontend/antdv/es/button';
import { VueNode, CustomSlotsType } from '@aplus-frontend/antdv/es/_util/type';
import { SelectHandler, FieldNames, FilterFunc } from '@aplus-frontend/antdv/es/vc-select/Select';
import { RenderDOMFunc, CustomTagProps, DropdownRender } from '@aplus-frontend/antdv/es/vc-select/BaseSelect';
import { AlignType } from '@aplus-frontend/antdv/es/vc-trigger/interface';
import { FieldMode } from '..';
type ApFieldSelectSlots = {
    notFoundContent: any;
    suffixIcon: any;
    itemIcon: any;
    removeIcon: any;
    clearIcon: any;
    placeholder: any;
    tagRender: any;
    maxTagPlaceholder: any;
    optionLabel: any;
    default: any;
    option: any;
};
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<ApFieldSelectSlots> & ApFieldSelectSlots;
    refs: {
        selectRef: CreateComponentPublicInstanceWithMixins<Readonly< ExtractPropTypes<{
            value: {
                type: PropType<SelectValue>;
                default: SelectValue;
            };
            defaultValue: {
                type: PropType<SelectValue>;
                default: SelectValue;
            };
            notFoundContent: VueTypeValidableDef<any>;
            suffixIcon: VueTypeValidableDef<any>;
            itemIcon: VueTypeValidableDef<any>;
            size: {
                type: PropType<ButtonSize>;
                default: ButtonSize;
            };
            mode: {
                type: PropType<"multiple" | "tags" | "SECRET_COMBOBOX_MODE_DO_NOT_USE">;
                default: "multiple" | "tags" | "SECRET_COMBOBOX_MODE_DO_NOT_USE";
            };
            bordered: {
                type: BooleanConstructor;
                default: boolean;
            };
            showArrow: {
                type: BooleanConstructor;
                default: boolean;
            };
            variant: {
                type: PropType<"filled" | "outlined" | "borderless" | "underlined">;
                default: "filled" | "outlined" | "borderless" | "underlined";
            };
            maxCount: NumberConstructor;
            transitionName: StringConstructor;
            choiceTransitionName: {
                type: PropType<"">;
                default: "";
            };
            popupClassName: StringConstructor;
            dropdownClassName: StringConstructor;
            placement: {
                type: PropType<"bottomLeft" | "bottomRight" | "topLeft" | "topRight">;
                default: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
            };
            status: {
                type: PropType<"" | "error" | "warning">;
                default: "" | "error" | "warning";
            };
            'onUpdate:value': {
                type: PropType<(val: SelectValue) => void>;
                default: (val: SelectValue) => void;
            };
            children: PropType< VueNode[]>;
            listHeight: NumberConstructor;
            onMouseenter: PropType<(e: MouseEvent) => void>;
            onMouseleave: PropType<(e: MouseEvent) => void>;
            tabindex: NumberConstructor;
            onClick: PropType<(e: MouseEvent) => void>;
            onFocus: {
                type: PropType<(e: FocusEvent) => void>;
            };
            onBlur: {
                type: PropType<(e: FocusEvent) => void>;
            };
            onChange: PropType<(value: SelectValue, option: DefaultOptionType | DefaultOptionType[]) => void>;
            onKeydown: PropType<(e: KeyboardEvent) => void>;
            onKeyup: PropType<(e: KeyboardEvent) => void>;
            onMousedown: PropType<(e: MouseEvent) => void>;
            onSelect: PropType<SelectHandler<(string | number) | LabeledValue, DefaultOptionType>>;
            open: {
                type: BooleanConstructor;
                default: any;
            };
            animation: StringConstructor;
            direction: {
                type: PropType<"rtl" | "ltr">;
            };
            disabled: {
                type: BooleanConstructor;
                default: any;
            };
            prefixCls: StringConstructor;
            id: StringConstructor;
            autofocus: BooleanConstructor;
            getPopupContainer: {
                type: PropType<RenderDOMFunc>;
            };
            virtual: {
                type: BooleanConstructor;
                default: any;
            };
            dropdownMatchSelectWidth: {
                type: PropType<number | boolean>;
                default: any;
            };
            placeholder: VueTypeValidableDef<any>;
            loading: {
                type: BooleanConstructor;
                default: any;
            };
            prefix: VueTypeValidableDef<any>;
            clearIcon: VueTypeValidableDef<any>;
            allowClear: {
                type: BooleanConstructor;
                default: any;
            };
            fieldNames: PropType<FieldNames>;
            inputValue: StringConstructor;
            searchValue: StringConstructor;
            onSearch: PropType<(value: string) => void>;
            autoClearSearchValue: {
                type: BooleanConstructor;
                default: any;
            };
            onDeselect: PropType<SelectHandler<(string | number) | LabeledValue, DefaultOptionType>>;
            onActive: PropType<(value: SelectValue) => void>;
            filterOption: {
                type: PropType<boolean | FilterFunc<DefaultOptionType>>;
                default: any;
            };
            filterSort: PropType<(optionA: DefaultOptionType, optionB: DefaultOptionType, info: {
                searchValue: string;
            }) => number>;
            optionFilterProp: PropType<string | string[]>;
            optionLabelProp: StringConstructor;
            options: PropType<DefaultOptionType[]>;
            defaultActiveFirstOption: {
                type: BooleanConstructor;
                default: any;
            };
            listItemHeight: NumberConstructor;
            onClickOption: PropType<(e: MouseEvent, value: SelectValue, selected: boolean) => boolean | Promise<boolean>>;
            menuItemSelectedIcon: VueTypeValidableDef<any>;
            labelInValue: {
                type: BooleanConstructor;
                default: any;
            };
            showSearch: {
                type: BooleanConstructor;
                default: any;
            };
            tagRender: {
                type: PropType<(props: CustomTagProps) => any>;
            };
            optionLabelRender: {
                type: PropType<(option: Record<string, any>) => any>;
            };
            onClear: PropType<() => void>;
            defaultOpen: {
                type: BooleanConstructor;
                default: any;
            };
            onDropdownVisibleChange: {
                type: PropType<(open: boolean) => void>;
            };
            maxTagTextLength: NumberConstructor;
            maxTagCount: {
                type: PropType<number | "responsive">;
            };
            maxTagPlaceholder: VueTypeValidableDef<any>;
            tokenSeparators: {
                type: PropType<string[]>;
            };
            removeIcon: VueTypeValidableDef<any>;
            dropdownStyle: {
                type: PropType<CSSProperties>;
            };
            dropdownRender: {
                type: PropType<DropdownRender>;
            };
            dropdownAlign: PropType<AlignType>;
            showAction: {
                type: PropType<("click" | "focus")[]>;
            };
            onPopupScroll: PropType<(e: UIEvent) => void>;
            onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
        }>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
            size: ButtonSize;
            value: SelectValue;
            mode: "multiple" | "tags" | "SECRET_COMBOBOX_MODE_DO_NOT_USE";
            open: boolean;
            disabled: boolean;
            autofocus: boolean;
            variant: "filled" | "outlined" | "borderless" | "underlined";
            virtual: boolean;
            dropdownMatchSelectWidth: number | boolean;
            loading: boolean;
            bordered: boolean;
            'onUpdate:value': (val: SelectValue) => void;
            status: "" | "error" | "warning";
            defaultValue: SelectValue;
            allowClear: boolean;
            autoClearSearchValue: boolean;
            filterOption: boolean | FilterFunc<DefaultOptionType>;
            defaultActiveFirstOption: boolean;
            labelInValue: boolean;
            showSearch: boolean;
            choiceTransitionName: "";
            defaultOpen: boolean;
            placement: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
            showArrow: boolean;
        }, true, {}, CustomSlotsType<{
            notFoundContent: any;
            suffixIcon: any;
            itemIcon: any;
            removeIcon: any;
            clearIcon: any;
            dropdownRender: any;
            option: any;
            placeholder: any;
            tagRender: any;
            maxTagPlaceholder: any;
            optionLabel: any;
            default: any;
            prefix: any;
        }>, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
            P: {};
            B: {};
            D: {};
            C: {};
            M: {};
            Defaults: {};
        }, Readonly< ExtractPropTypes<{
            value: {
                type: PropType<SelectValue>;
                default: SelectValue;
            };
            defaultValue: {
                type: PropType<SelectValue>;
                default: SelectValue;
            };
            notFoundContent: VueTypeValidableDef<any>;
            suffixIcon: VueTypeValidableDef<any>;
            itemIcon: VueTypeValidableDef<any>;
            size: {
                type: PropType<ButtonSize>;
                default: ButtonSize;
            };
            mode: {
                type: PropType<"multiple" | "tags" | "SECRET_COMBOBOX_MODE_DO_NOT_USE">;
                default: "multiple" | "tags" | "SECRET_COMBOBOX_MODE_DO_NOT_USE";
            };
            bordered: {
                type: BooleanConstructor;
                default: boolean;
            };
            showArrow: {
                type: BooleanConstructor;
                default: boolean;
            };
            variant: {
                type: PropType<"filled" | "outlined" | "borderless" | "underlined">;
                default: "filled" | "outlined" | "borderless" | "underlined";
            };
            maxCount: NumberConstructor;
            transitionName: StringConstructor;
            choiceTransitionName: {
                type: PropType<"">;
                default: "";
            };
            popupClassName: StringConstructor;
            dropdownClassName: StringConstructor;
            placement: {
                type: PropType<"bottomLeft" | "bottomRight" | "topLeft" | "topRight">;
                default: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
            };
            status: {
                type: PropType<"" | "error" | "warning">;
                default: "" | "error" | "warning";
            };
            'onUpdate:value': {
                type: PropType<(val: SelectValue) => void>;
                default: (val: SelectValue) => void;
            };
            children: PropType< VueNode[]>;
            listHeight: NumberConstructor;
            onMouseenter: PropType<(e: MouseEvent) => void>;
            onMouseleave: PropType<(e: MouseEvent) => void>;
            tabindex: NumberConstructor;
            onClick: PropType<(e: MouseEvent) => void>;
            onFocus: {
                type: PropType<(e: FocusEvent) => void>;
            };
            onBlur: {
                type: PropType<(e: FocusEvent) => void>;
            };
            onChange: PropType<(value: SelectValue, option: DefaultOptionType | DefaultOptionType[]) => void>;
            onKeydown: PropType<(e: KeyboardEvent) => void>;
            onKeyup: PropType<(e: KeyboardEvent) => void>;
            onMousedown: PropType<(e: MouseEvent) => void>;
            onSelect: PropType<SelectHandler<(string | number) | LabeledValue, DefaultOptionType>>;
            open: {
                type: BooleanConstructor;
                default: any;
            };
            animation: StringConstructor;
            direction: {
                type: PropType<"rtl" | "ltr">;
            };
            disabled: {
                type: BooleanConstructor;
                default: any;
            };
            prefixCls: StringConstructor;
            id: StringConstructor;
            autofocus: BooleanConstructor;
            getPopupContainer: {
                type: PropType<RenderDOMFunc>;
            };
            virtual: {
                type: BooleanConstructor;
                default: any;
            };
            dropdownMatchSelectWidth: {
                type: PropType<number | boolean>;
                default: any;
            };
            placeholder: VueTypeValidableDef<any>;
            loading: {
                type: BooleanConstructor;
                default: any;
            };
            prefix: VueTypeValidableDef<any>;
            clearIcon: VueTypeValidableDef<any>;
            allowClear: {
                type: BooleanConstructor;
                default: any;
            };
            fieldNames: PropType<FieldNames>;
            inputValue: StringConstructor;
            searchValue: StringConstructor;
            onSearch: PropType<(value: string) => void>;
            autoClearSearchValue: {
                type: BooleanConstructor;
                default: any;
            };
            onDeselect: PropType<SelectHandler<(string | number) | LabeledValue, DefaultOptionType>>;
            onActive: PropType<(value: SelectValue) => void>;
            filterOption: {
                type: PropType<boolean | FilterFunc<DefaultOptionType>>;
                default: any;
            };
            filterSort: PropType<(optionA: DefaultOptionType, optionB: DefaultOptionType, info: {
                searchValue: string;
            }) => number>;
            optionFilterProp: PropType<string | string[]>;
            optionLabelProp: StringConstructor;
            options: PropType<DefaultOptionType[]>;
            defaultActiveFirstOption: {
                type: BooleanConstructor;
                default: any;
            };
            listItemHeight: NumberConstructor;
            onClickOption: PropType<(e: MouseEvent, value: SelectValue, selected: boolean) => boolean | Promise<boolean>>;
            menuItemSelectedIcon: VueTypeValidableDef<any>;
            labelInValue: {
                type: BooleanConstructor;
                default: any;
            };
            showSearch: {
                type: BooleanConstructor;
                default: any;
            };
            tagRender: {
                type: PropType<(props: CustomTagProps) => any>;
            };
            optionLabelRender: {
                type: PropType<(option: Record<string, any>) => any>;
            };
            onClear: PropType<() => void>;
            defaultOpen: {
                type: BooleanConstructor;
                default: any;
            };
            onDropdownVisibleChange: {
                type: PropType<(open: boolean) => void>;
            };
            maxTagTextLength: NumberConstructor;
            maxTagCount: {
                type: PropType<number | "responsive">;
            };
            maxTagPlaceholder: VueTypeValidableDef<any>;
            tokenSeparators: {
                type: PropType<string[]>;
            };
            removeIcon: VueTypeValidableDef<any>;
            dropdownStyle: {
                type: PropType<CSSProperties>;
            };
            dropdownRender: {
                type: PropType<DropdownRender>;
            };
            dropdownAlign: PropType<AlignType>;
            showAction: {
                type: PropType<("click" | "focus")[]>;
            };
            onPopupScroll: PropType<(e: UIEvent) => void>;
            onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
        }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
            size: ButtonSize;
            value: SelectValue;
            mode: "multiple" | "tags" | "SECRET_COMBOBOX_MODE_DO_NOT_USE";
            open: boolean;
            disabled: boolean;
            autofocus: boolean;
            variant: "filled" | "outlined" | "borderless" | "underlined";
            virtual: boolean;
            dropdownMatchSelectWidth: number | boolean;
            loading: boolean;
            bordered: boolean;
            'onUpdate:value': (val: SelectValue) => void;
            status: "" | "error" | "warning";
            defaultValue: SelectValue;
            allowClear: boolean;
            autoClearSearchValue: boolean;
            filterOption: boolean | FilterFunc<DefaultOptionType>;
            defaultActiveFirstOption: boolean;
            labelInValue: boolean;
            showSearch: boolean;
            choiceTransitionName: "";
            defaultOpen: boolean;
            placement: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
            showArrow: boolean;
        }> | null;
    };
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<ApFieldSelectProps, {
    blur: () => void;
    focus: () => void;
    request: (clear?: boolean) => Promise<void>;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    "update:value": (...args: any[]) => void;
}, string, PublicProps, Readonly<ApFieldSelectProps> & Readonly<{
    "onUpdate:value"?: ((...args: any[]) => any) | undefined;
}>, {
    mode: FieldMode;
    open: boolean;
    multiple: boolean;
    disabled: boolean;
    virtual: boolean;
    autofocus: boolean;
    lazy: boolean | "first-focus" | "first-open";
    loading: boolean;
    bordered: boolean;
    allowClear: boolean;
    showArrow: boolean;
    autoClearSearchValue: boolean;
    defaultActiveFirstOption: boolean;
    labelInValue: boolean;
    showSearch: boolean;
    defaultOpen: boolean;
    emptyText: string;
    searchMode: "filter" | "request";
    refetchOnFocus: boolean;
    fetchOnFocus: boolean;
    addAll: boolean | number;
    searchDelay: number;
    allowOnlySelect: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
    selectRef: CreateComponentPublicInstanceWithMixins<Readonly< ExtractPropTypes<{
        value: {
            type: PropType<SelectValue>;
            default: SelectValue;
        };
        defaultValue: {
            type: PropType<SelectValue>;
            default: SelectValue;
        };
        notFoundContent: VueTypeValidableDef<any>;
        suffixIcon: VueTypeValidableDef<any>;
        itemIcon: VueTypeValidableDef<any>;
        size: {
            type: PropType<ButtonSize>;
            default: ButtonSize;
        };
        mode: {
            type: PropType<"multiple" | "tags" | "SECRET_COMBOBOX_MODE_DO_NOT_USE">;
            default: "multiple" | "tags" | "SECRET_COMBOBOX_MODE_DO_NOT_USE";
        };
        bordered: {
            type: BooleanConstructor;
            default: boolean;
        };
        showArrow: {
            type: BooleanConstructor;
            default: boolean;
        };
        variant: {
            type: PropType<"filled" | "outlined" | "borderless" | "underlined">;
            default: "filled" | "outlined" | "borderless" | "underlined";
        };
        maxCount: NumberConstructor;
        transitionName: StringConstructor;
        choiceTransitionName: {
            type: PropType<"">;
            default: "";
        };
        popupClassName: StringConstructor;
        dropdownClassName: StringConstructor;
        placement: {
            type: PropType<"bottomLeft" | "bottomRight" | "topLeft" | "topRight">;
            default: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
        };
        status: {
            type: PropType<"" | "error" | "warning">;
            default: "" | "error" | "warning";
        };
        'onUpdate:value': {
            type: PropType<(val: SelectValue) => void>;
            default: (val: SelectValue) => void;
        };
        children: PropType< VueNode[]>;
        listHeight: NumberConstructor;
        onMouseenter: PropType<(e: MouseEvent) => void>;
        onMouseleave: PropType<(e: MouseEvent) => void>;
        tabindex: NumberConstructor;
        onClick: PropType<(e: MouseEvent) => void>;
        onFocus: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onBlur: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onChange: PropType<(value: SelectValue, option: DefaultOptionType | DefaultOptionType[]) => void>;
        onKeydown: PropType<(e: KeyboardEvent) => void>;
        onKeyup: PropType<(e: KeyboardEvent) => void>;
        onMousedown: PropType<(e: MouseEvent) => void>;
        onSelect: PropType<SelectHandler<(string | number) | LabeledValue, DefaultOptionType>>;
        open: {
            type: BooleanConstructor;
            default: any;
        };
        animation: StringConstructor;
        direction: {
            type: PropType<"rtl" | "ltr">;
        };
        disabled: {
            type: BooleanConstructor;
            default: any;
        };
        prefixCls: StringConstructor;
        id: StringConstructor;
        autofocus: BooleanConstructor;
        getPopupContainer: {
            type: PropType<RenderDOMFunc>;
        };
        virtual: {
            type: BooleanConstructor;
            default: any;
        };
        dropdownMatchSelectWidth: {
            type: PropType<number | boolean>;
            default: any;
        };
        placeholder: VueTypeValidableDef<any>;
        loading: {
            type: BooleanConstructor;
            default: any;
        };
        prefix: VueTypeValidableDef<any>;
        clearIcon: VueTypeValidableDef<any>;
        allowClear: {
            type: BooleanConstructor;
            default: any;
        };
        fieldNames: PropType<FieldNames>;
        inputValue: StringConstructor;
        searchValue: StringConstructor;
        onSearch: PropType<(value: string) => void>;
        autoClearSearchValue: {
            type: BooleanConstructor;
            default: any;
        };
        onDeselect: PropType<SelectHandler<(string | number) | LabeledValue, DefaultOptionType>>;
        onActive: PropType<(value: SelectValue) => void>;
        filterOption: {
            type: PropType<boolean | FilterFunc<DefaultOptionType>>;
            default: any;
        };
        filterSort: PropType<(optionA: DefaultOptionType, optionB: DefaultOptionType, info: {
            searchValue: string;
        }) => number>;
        optionFilterProp: PropType<string | string[]>;
        optionLabelProp: StringConstructor;
        options: PropType<DefaultOptionType[]>;
        defaultActiveFirstOption: {
            type: BooleanConstructor;
            default: any;
        };
        listItemHeight: NumberConstructor;
        onClickOption: PropType<(e: MouseEvent, value: SelectValue, selected: boolean) => boolean | Promise<boolean>>;
        menuItemSelectedIcon: VueTypeValidableDef<any>;
        labelInValue: {
            type: BooleanConstructor;
            default: any;
        };
        showSearch: {
            type: BooleanConstructor;
            default: any;
        };
        tagRender: {
            type: PropType<(props: CustomTagProps) => any>;
        };
        optionLabelRender: {
            type: PropType<(option: Record<string, any>) => any>;
        };
        onClear: PropType<() => void>;
        defaultOpen: {
            type: BooleanConstructor;
            default: any;
        };
        onDropdownVisibleChange: {
            type: PropType<(open: boolean) => void>;
        };
        maxTagTextLength: NumberConstructor;
        maxTagCount: {
            type: PropType<number | "responsive">;
        };
        maxTagPlaceholder: VueTypeValidableDef<any>;
        tokenSeparators: {
            type: PropType<string[]>;
        };
        removeIcon: VueTypeValidableDef<any>;
        dropdownStyle: {
            type: PropType<CSSProperties>;
        };
        dropdownRender: {
            type: PropType<DropdownRender>;
        };
        dropdownAlign: PropType<AlignType>;
        showAction: {
            type: PropType<("click" | "focus")[]>;
        };
        onPopupScroll: PropType<(e: UIEvent) => void>;
        onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
        size: ButtonSize;
        value: SelectValue;
        mode: "multiple" | "tags" | "SECRET_COMBOBOX_MODE_DO_NOT_USE";
        open: boolean;
        disabled: boolean;
        autofocus: boolean;
        variant: "filled" | "outlined" | "borderless" | "underlined";
        virtual: boolean;
        dropdownMatchSelectWidth: number | boolean;
        loading: boolean;
        bordered: boolean;
        'onUpdate:value': (val: SelectValue) => void;
        status: "" | "error" | "warning";
        defaultValue: SelectValue;
        allowClear: boolean;
        autoClearSearchValue: boolean;
        filterOption: boolean | FilterFunc<DefaultOptionType>;
        defaultActiveFirstOption: boolean;
        labelInValue: boolean;
        showSearch: boolean;
        choiceTransitionName: "";
        defaultOpen: boolean;
        placement: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
        showArrow: boolean;
    }, true, {}, CustomSlotsType<{
        notFoundContent: any;
        suffixIcon: any;
        itemIcon: any;
        removeIcon: any;
        clearIcon: any;
        dropdownRender: any;
        option: any;
        placeholder: any;
        tagRender: any;
        maxTagPlaceholder: any;
        optionLabel: any;
        default: any;
        prefix: any;
    }>, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly< ExtractPropTypes<{
        value: {
            type: PropType<SelectValue>;
            default: SelectValue;
        };
        defaultValue: {
            type: PropType<SelectValue>;
            default: SelectValue;
        };
        notFoundContent: VueTypeValidableDef<any>;
        suffixIcon: VueTypeValidableDef<any>;
        itemIcon: VueTypeValidableDef<any>;
        size: {
            type: PropType<ButtonSize>;
            default: ButtonSize;
        };
        mode: {
            type: PropType<"multiple" | "tags" | "SECRET_COMBOBOX_MODE_DO_NOT_USE">;
            default: "multiple" | "tags" | "SECRET_COMBOBOX_MODE_DO_NOT_USE";
        };
        bordered: {
            type: BooleanConstructor;
            default: boolean;
        };
        showArrow: {
            type: BooleanConstructor;
            default: boolean;
        };
        variant: {
            type: PropType<"filled" | "outlined" | "borderless" | "underlined">;
            default: "filled" | "outlined" | "borderless" | "underlined";
        };
        maxCount: NumberConstructor;
        transitionName: StringConstructor;
        choiceTransitionName: {
            type: PropType<"">;
            default: "";
        };
        popupClassName: StringConstructor;
        dropdownClassName: StringConstructor;
        placement: {
            type: PropType<"bottomLeft" | "bottomRight" | "topLeft" | "topRight">;
            default: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
        };
        status: {
            type: PropType<"" | "error" | "warning">;
            default: "" | "error" | "warning";
        };
        'onUpdate:value': {
            type: PropType<(val: SelectValue) => void>;
            default: (val: SelectValue) => void;
        };
        children: PropType< VueNode[]>;
        listHeight: NumberConstructor;
        onMouseenter: PropType<(e: MouseEvent) => void>;
        onMouseleave: PropType<(e: MouseEvent) => void>;
        tabindex: NumberConstructor;
        onClick: PropType<(e: MouseEvent) => void>;
        onFocus: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onBlur: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onChange: PropType<(value: SelectValue, option: DefaultOptionType | DefaultOptionType[]) => void>;
        onKeydown: PropType<(e: KeyboardEvent) => void>;
        onKeyup: PropType<(e: KeyboardEvent) => void>;
        onMousedown: PropType<(e: MouseEvent) => void>;
        onSelect: PropType<SelectHandler<(string | number) | LabeledValue, DefaultOptionType>>;
        open: {
            type: BooleanConstructor;
            default: any;
        };
        animation: StringConstructor;
        direction: {
            type: PropType<"rtl" | "ltr">;
        };
        disabled: {
            type: BooleanConstructor;
            default: any;
        };
        prefixCls: StringConstructor;
        id: StringConstructor;
        autofocus: BooleanConstructor;
        getPopupContainer: {
            type: PropType<RenderDOMFunc>;
        };
        virtual: {
            type: BooleanConstructor;
            default: any;
        };
        dropdownMatchSelectWidth: {
            type: PropType<number | boolean>;
            default: any;
        };
        placeholder: VueTypeValidableDef<any>;
        loading: {
            type: BooleanConstructor;
            default: any;
        };
        prefix: VueTypeValidableDef<any>;
        clearIcon: VueTypeValidableDef<any>;
        allowClear: {
            type: BooleanConstructor;
            default: any;
        };
        fieldNames: PropType<FieldNames>;
        inputValue: StringConstructor;
        searchValue: StringConstructor;
        onSearch: PropType<(value: string) => void>;
        autoClearSearchValue: {
            type: BooleanConstructor;
            default: any;
        };
        onDeselect: PropType<SelectHandler<(string | number) | LabeledValue, DefaultOptionType>>;
        onActive: PropType<(value: SelectValue) => void>;
        filterOption: {
            type: PropType<boolean | FilterFunc<DefaultOptionType>>;
            default: any;
        };
        filterSort: PropType<(optionA: DefaultOptionType, optionB: DefaultOptionType, info: {
            searchValue: string;
        }) => number>;
        optionFilterProp: PropType<string | string[]>;
        optionLabelProp: StringConstructor;
        options: PropType<DefaultOptionType[]>;
        defaultActiveFirstOption: {
            type: BooleanConstructor;
            default: any;
        };
        listItemHeight: NumberConstructor;
        onClickOption: PropType<(e: MouseEvent, value: SelectValue, selected: boolean) => boolean | Promise<boolean>>;
        menuItemSelectedIcon: VueTypeValidableDef<any>;
        labelInValue: {
            type: BooleanConstructor;
            default: any;
        };
        showSearch: {
            type: BooleanConstructor;
            default: any;
        };
        tagRender: {
            type: PropType<(props: CustomTagProps) => any>;
        };
        optionLabelRender: {
            type: PropType<(option: Record<string, any>) => any>;
        };
        onClear: PropType<() => void>;
        defaultOpen: {
            type: BooleanConstructor;
            default: any;
        };
        onDropdownVisibleChange: {
            type: PropType<(open: boolean) => void>;
        };
        maxTagTextLength: NumberConstructor;
        maxTagCount: {
            type: PropType<number | "responsive">;
        };
        maxTagPlaceholder: VueTypeValidableDef<any>;
        tokenSeparators: {
            type: PropType<string[]>;
        };
        removeIcon: VueTypeValidableDef<any>;
        dropdownStyle: {
            type: PropType<CSSProperties>;
        };
        dropdownRender: {
            type: PropType<DropdownRender>;
        };
        dropdownAlign: PropType<AlignType>;
        showAction: {
            type: PropType<("click" | "focus")[]>;
        };
        onPopupScroll: PropType<(e: UIEvent) => void>;
        onInputKeyDown: PropType<(e: KeyboardEvent) => void>;
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
        size: ButtonSize;
        value: SelectValue;
        mode: "multiple" | "tags" | "SECRET_COMBOBOX_MODE_DO_NOT_USE";
        open: boolean;
        disabled: boolean;
        autofocus: boolean;
        variant: "filled" | "outlined" | "borderless" | "underlined";
        virtual: boolean;
        dropdownMatchSelectWidth: number | boolean;
        loading: boolean;
        bordered: boolean;
        'onUpdate:value': (val: SelectValue) => void;
        status: "" | "error" | "warning";
        defaultValue: SelectValue;
        allowClear: boolean;
        autoClearSearchValue: boolean;
        filterOption: boolean | FilterFunc<DefaultOptionType>;
        defaultActiveFirstOption: boolean;
        labelInValue: boolean;
        showSearch: boolean;
        choiceTransitionName: "";
        defaultOpen: boolean;
        placement: "bottomLeft" | "bottomRight" | "topLeft" | "topRight";
        showArrow: boolean;
    }> | null;
}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
