import { ApFormItemSlots } from '../../interface';
import { ApFormItemSelectProps } from '../interface';
import { ComponentInternalInstance, VNode, CSSProperties, VNodeProps, AllowedComponentProps, ComponentCustomProps, Attrs, CreateComponentPublicInstanceWithMixins, ExtractPropTypes, PropType, ComponentOptionsMixin, PublicProps, GlobalComponents, GlobalDirectives, ComponentProvideOptions, Slot, ComponentPublicInstance, ComponentOptionsBase, DebuggerEvent, nextTick, WatchOptions, WatchStopHandle, ComponentCustomProperties, DefineComponent } from 'vue';
import { FieldMode, ApFieldSelectProps } from '../../..';
import { SelectValue, DefaultOptionType, LabeledValue } from '@aplus-frontend/antdv/es/select';
import { SelectHandler, FieldNames, FilterFunc } from '@aplus-frontend/antdv/es/vc-select/Select';
import { VueNode, CustomSlotsType } from '@aplus-frontend/antdv/es/_util/type';
import { RenderDOMFunc, CustomTagProps, DropdownRender } from '@aplus-frontend/antdv/es/vc-select/BaseSelect';
import { AlignType } from '@aplus-frontend/antdv/es/vc-trigger/interface';
import { Recordable } from '../../../type';
import { SelectProps } from '@aplus-frontend/antdv';
import { VueTypeValidableDef } from '../../../../node_modules/vue-types';
import { ButtonSize } from '@aplus-frontend/antdv/es/button';
import { OnCleanup } from '@vue/reactivity';
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        notFoundContent: any;
        suffixIcon: any;
        itemIcon: any;
        removeIcon: any;
        clearIcon: any;
        dropdownRender: any;
        option: any;
        placeholder: any;
        tagRender: any;
        maxTagPlaceholder: any;
        optionLabel: any;
        default: any;
    } & Omit<ApFormItemSlots, "default">> & {
        notFoundContent: any;
        suffixIcon: any;
        itemIcon: any;
        removeIcon: any;
        clearIcon: any;
        dropdownRender: any;
        option: any;
        placeholder: any;
        tagRender: any;
        maxTagPlaceholder: any;
        optionLabel: any;
        default: any;
    } & Omit<ApFormItemSlots, "default">;
    refs: {
        selectRef: ({
            $: ComponentInternalInstance;
            $data: {};
            $props: {
                readonly mode?: FieldMode | undefined;
                readonly class?: unknown;
                readonly style?: unknown;
                readonly emptyText?: string | undefined;
                readonly customReadMode?: ((originalNode: any, val?: any) => VNode) | undefined;
                readonly size?: "small" | "middle" | "large" | undefined;
                readonly onBlur?: ((e: FocusEvent) => void) | undefined;
                readonly onChange?: ((value: SelectValue, option: DefaultOptionType | DefaultOptionType[]) => void) | undefined;
                readonly onClick?: ((e: MouseEvent) => void) | undefined;
                readonly onFocus?: ((e: FocusEvent) => void) | undefined;
                readonly onKeydown?: ((e: KeyboardEvent) => void) | undefined;
                readonly onKeyup?: ((e: KeyboardEvent) => void) | undefined;
                readonly onMousedown?: ((e: MouseEvent) => void) | undefined;
                readonly onMouseenter?: ((e: MouseEvent) => void) | undefined;
                readonly onMouseleave?: ((e: MouseEvent) => void) | undefined;
                readonly onSelect?: SelectHandler<(string | number) | LabeledValue, DefaultOptionType> | undefined;
                readonly placement?: "topLeft" | "bottomLeft" | "bottomRight" | "topRight" | undefined;
                readonly open?: boolean | undefined;
                readonly disabled?: boolean | undefined;
                readonly direction?: "ltr" | "rtl" | undefined;
                readonly animation?: string | undefined;
                readonly children?: VueNode[] | undefined;
                readonly placeholder?: any;
                readonly id?: string | undefined;
                readonly getPopupContainer?: RenderDOMFunc | undefined;
                readonly prefixCls?: string | undefined;
                readonly virtual?: boolean | undefined;
                readonly variant?: "filled" | "outlined" | "borderless" | "underlined" | undefined;
                readonly dropdownMatchSelectWidth?: number | boolean | undefined;
                readonly autofocus?: boolean | undefined;
                readonly loading?: boolean | undefined;
                readonly bordered?: boolean | undefined;
                readonly status?: "" | "error" | "warning" | undefined;
                readonly defaultValue?: (string | number) | LabeledValue | (string | number)[] | LabeledValue[] | undefined;
                readonly prefix?: any;
                readonly clearIcon?: any;
                readonly allowClear?: boolean | undefined;
                readonly notFoundContent?: any;
                readonly suffixIcon?: any;
                readonly itemIcon?: any;
                readonly showArrow?: boolean | undefined;
                readonly maxCount?: number | undefined;
                readonly transitionName?: string | undefined;
                readonly choiceTransitionName?: "" | undefined;
                readonly popupClassName?: string | undefined;
                readonly dropdownClassName?: string | undefined;
                readonly listHeight?: number | undefined;
                readonly tabindex?: number | undefined;
                readonly fieldNames?: FieldNames | undefined;
                readonly inputValue?: string | undefined;
                readonly searchValue?: string | undefined;
                readonly autoClearSearchValue?: boolean | undefined;
                readonly onDeselect?: SelectHandler<(string | number) | LabeledValue, DefaultOptionType> | undefined;
                readonly onActive?: ((value: SelectValue) => void) | undefined;
                readonly filterOption?: boolean | FilterFunc<DefaultOptionType> | undefined;
                readonly filterSort?: ((optionA: DefaultOptionType, optionB: DefaultOptionType, info: {
                    searchValue: string;
                }) => number) | undefined;
                readonly optionFilterProp?: string | string[] | undefined;
                readonly optionLabelProp?: string | undefined;
                readonly options?: DefaultOptionType[] | undefined;
                readonly defaultActiveFirstOption?: boolean | undefined;
                readonly listItemHeight?: number | undefined;
                readonly onClickOption?: ((e: MouseEvent, value: SelectValue, selected: boolean) => boolean | Promise<boolean>) | undefined;
                readonly menuItemSelectedIcon?: any;
                readonly labelInValue?: boolean | undefined;
                readonly showSearch?: boolean | undefined;
                readonly tagRender?: ((props: CustomTagProps) => any) | undefined;
                readonly optionLabelRender?: ((option: Record<string, any>) => any) | undefined;
                readonly onClear?: (() => void) | undefined;
                readonly defaultOpen?: boolean | undefined;
                readonly onDropdownVisibleChange?: ((open: boolean) => void) | undefined;
                readonly maxTagTextLength?: number | undefined;
                readonly maxTagCount?: number | "responsive" | undefined;
                readonly maxTagPlaceholder?: any;
                readonly tokenSeparators?: string[] | undefined;
                readonly removeIcon?: any;
                readonly dropdownStyle?: CSSProperties | undefined;
                readonly dropdownRender?: DropdownRender | undefined;
                readonly dropdownAlign?: AlignType | undefined;
                readonly showAction?: ("click" | "focus")[] | undefined;
                readonly onPopupScroll?: ((e: UIEvent) => void) | undefined;
                readonly onInputKeyDown?: ((e: KeyboardEvent) => void) | undefined;
                readonly request?: ((value?: string, extraParams?: Recordable) => Promise< SelectProps["options"]>) | undefined;
                readonly multiple?: boolean | undefined;
                readonly value?: (string | number) | LabeledValue | (string | number)[] | LabeledValue[] | undefined;
                readonly 'onUpdate:value'?: (((val: SelectValue) => void) & ((...args: any[]) => any)) | undefined;
                readonly searchMode?: "filter" | "request" | undefined;
                readonly refetchOnFocus?: boolean | undefined;
                readonly fetchOnFocus?: boolean | undefined;
                readonly fetchOnOpen?: boolean | undefined;
                readonly lazy?: boolean | "first-focus" | "first-open" | undefined;
                readonly addAll?: boolean | number | undefined;
                readonly params?: Recordable | undefined;
                readonly searchDelay?: number | undefined;
                readonly allowOnlySelect?: boolean | undefined;
            } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
            $attrs: Attrs;
            $refs: {
                [x: string]: unknown;
            } & {
                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;
            };
            $slots: Readonly<{
                [name: string]: Slot<any> | undefined;
            }>;
            $root: ComponentPublicInstance | null;
            $parent: ComponentPublicInstance | null;
            $host: Element | null;
            $emit: (event: "update:value", ...args: any[]) => void;
            $el: any;
            $options: ComponentOptionsBase<Readonly< ApFieldSelectProps> & Readonly<{
                "onUpdate:value"?: ((...args: any[]) => any) | undefined;
            }>, {
                blur: () => void;
                focus: () => void;
                request: (clear?: boolean) => Promise<void>;
            }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
                "update:value": (...args: any[]) => void;
            }, string, {
                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, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & {
                beforeCreate?: (() => void) | (() => void)[];
                created?: (() => void) | (() => void)[];
                beforeMount?: (() => void) | (() => void)[];
                mounted?: (() => void) | (() => void)[];
                beforeUpdate?: (() => void) | (() => void)[];
                updated?: (() => void) | (() => void)[];
                activated?: (() => void) | (() => void)[];
                deactivated?: (() => void) | (() => void)[];
                beforeDestroy?: (() => void) | (() => void)[];
                beforeUnmount?: (() => void) | (() => void)[];
                destroyed?: (() => void) | (() => void)[];
                unmounted?: (() => void) | (() => void)[];
                renderTracked?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
                renderTriggered?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
                errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
            };
            $forceUpdate: () => void;
            $nextTick: nextTick;
            $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
        } & Readonly<{
            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;
        }> & Omit<Readonly< ApFieldSelectProps> & Readonly<{
            "onUpdate:value"?: ((...args: any[]) => any) | undefined;
        }>, "blur" | "focus" | "request" | ("mode" | "open" | "multiple" | "disabled" | "virtual" | "autofocus" | "lazy" | "loading" | "bordered" | "allowClear" | "showArrow" | "autoClearSearchValue" | "defaultActiveFirstOption" | "labelInValue" | "showSearch" | "defaultOpen" | "emptyText" | "searchMode" | "refetchOnFocus" | "fetchOnFocus" | "addAll" | "searchDelay" | "allowOnlySelect")> & {
            blur: () => void;
            focus: () => void;
            request: (clear?: boolean) => Promise<void>;
        } & {} & ComponentCustomProperties & {} & {
            $slots: Readonly<{
                notFoundContent: any;
                suffixIcon: any;
                itemIcon: any;
                removeIcon: any;
                clearIcon: any;
                placeholder: any;
                tagRender: any;
                maxTagPlaceholder: any;
                optionLabel: any;
                default: any;
                option: any;
            }> & {
                notFoundContent: any;
                suffixIcon: any;
                itemIcon: any;
                removeIcon: any;
                clearIcon: any;
                placeholder: any;
                tagRender: any;
                maxTagPlaceholder: any;
                optionLabel: any;
                default: any;
                option: any;
            };
        }) | null;
    };
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<ApFormItemSelectProps, {
    focus: () => void;
    blur: () => void;
    request: () => void;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ApFormItemSelectProps> & Readonly<{}>, {
    disabled: boolean;
    required: boolean;
    colon: boolean;
    hasFeedback: boolean;
    autoLink: boolean;
    validateFirst: boolean;
    field: Omit< ApFieldSelectProps, "value" | "onUpdate:value">;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
    selectRef: ({
        $: ComponentInternalInstance;
        $data: {};
        $props: {
            readonly mode?: FieldMode | undefined;
            readonly class?: unknown;
            readonly style?: unknown;
            readonly emptyText?: string | undefined;
            readonly customReadMode?: ((originalNode: any, val?: any) => VNode) | undefined;
            readonly size?: "small" | "middle" | "large" | undefined;
            readonly onBlur?: ((e: FocusEvent) => void) | undefined;
            readonly onChange?: ((value: SelectValue, option: DefaultOptionType | DefaultOptionType[]) => void) | undefined;
            readonly onClick?: ((e: MouseEvent) => void) | undefined;
            readonly onFocus?: ((e: FocusEvent) => void) | undefined;
            readonly onKeydown?: ((e: KeyboardEvent) => void) | undefined;
            readonly onKeyup?: ((e: KeyboardEvent) => void) | undefined;
            readonly onMousedown?: ((e: MouseEvent) => void) | undefined;
            readonly onMouseenter?: ((e: MouseEvent) => void) | undefined;
            readonly onMouseleave?: ((e: MouseEvent) => void) | undefined;
            readonly onSelect?: SelectHandler<(string | number) | LabeledValue, DefaultOptionType> | undefined;
            readonly placement?: "topLeft" | "bottomLeft" | "bottomRight" | "topRight" | undefined;
            readonly open?: boolean | undefined;
            readonly disabled?: boolean | undefined;
            readonly direction?: "ltr" | "rtl" | undefined;
            readonly animation?: string | undefined;
            readonly children?: VueNode[] | undefined;
            readonly placeholder?: any;
            readonly id?: string | undefined;
            readonly getPopupContainer?: RenderDOMFunc | undefined;
            readonly prefixCls?: string | undefined;
            readonly virtual?: boolean | undefined;
            readonly variant?: "filled" | "outlined" | "borderless" | "underlined" | undefined;
            readonly dropdownMatchSelectWidth?: number | boolean | undefined;
            readonly autofocus?: boolean | undefined;
            readonly loading?: boolean | undefined;
            readonly bordered?: boolean | undefined;
            readonly status?: "" | "error" | "warning" | undefined;
            readonly defaultValue?: (string | number) | LabeledValue | (string | number)[] | LabeledValue[] | undefined;
            readonly prefix?: any;
            readonly clearIcon?: any;
            readonly allowClear?: boolean | undefined;
            readonly notFoundContent?: any;
            readonly suffixIcon?: any;
            readonly itemIcon?: any;
            readonly showArrow?: boolean | undefined;
            readonly maxCount?: number | undefined;
            readonly transitionName?: string | undefined;
            readonly choiceTransitionName?: "" | undefined;
            readonly popupClassName?: string | undefined;
            readonly dropdownClassName?: string | undefined;
            readonly listHeight?: number | undefined;
            readonly tabindex?: number | undefined;
            readonly fieldNames?: FieldNames | undefined;
            readonly inputValue?: string | undefined;
            readonly searchValue?: string | undefined;
            readonly autoClearSearchValue?: boolean | undefined;
            readonly onDeselect?: SelectHandler<(string | number) | LabeledValue, DefaultOptionType> | undefined;
            readonly onActive?: ((value: SelectValue) => void) | undefined;
            readonly filterOption?: boolean | FilterFunc<DefaultOptionType> | undefined;
            readonly filterSort?: ((optionA: DefaultOptionType, optionB: DefaultOptionType, info: {
                searchValue: string;
            }) => number) | undefined;
            readonly optionFilterProp?: string | string[] | undefined;
            readonly optionLabelProp?: string | undefined;
            readonly options?: DefaultOptionType[] | undefined;
            readonly defaultActiveFirstOption?: boolean | undefined;
            readonly listItemHeight?: number | undefined;
            readonly onClickOption?: ((e: MouseEvent, value: SelectValue, selected: boolean) => boolean | Promise<boolean>) | undefined;
            readonly menuItemSelectedIcon?: any;
            readonly labelInValue?: boolean | undefined;
            readonly showSearch?: boolean | undefined;
            readonly tagRender?: ((props: CustomTagProps) => any) | undefined;
            readonly optionLabelRender?: ((option: Record<string, any>) => any) | undefined;
            readonly onClear?: (() => void) | undefined;
            readonly defaultOpen?: boolean | undefined;
            readonly onDropdownVisibleChange?: ((open: boolean) => void) | undefined;
            readonly maxTagTextLength?: number | undefined;
            readonly maxTagCount?: number | "responsive" | undefined;
            readonly maxTagPlaceholder?: any;
            readonly tokenSeparators?: string[] | undefined;
            readonly removeIcon?: any;
            readonly dropdownStyle?: CSSProperties | undefined;
            readonly dropdownRender?: DropdownRender | undefined;
            readonly dropdownAlign?: AlignType | undefined;
            readonly showAction?: ("click" | "focus")[] | undefined;
            readonly onPopupScroll?: ((e: UIEvent) => void) | undefined;
            readonly onInputKeyDown?: ((e: KeyboardEvent) => void) | undefined;
            readonly request?: ((value?: string, extraParams?: Recordable) => Promise< SelectProps["options"]>) | undefined;
            readonly multiple?: boolean | undefined;
            readonly value?: (string | number) | LabeledValue | (string | number)[] | LabeledValue[] | undefined;
            readonly 'onUpdate:value'?: (((val: SelectValue) => void) & ((...args: any[]) => any)) | undefined;
            readonly searchMode?: "filter" | "request" | undefined;
            readonly refetchOnFocus?: boolean | undefined;
            readonly fetchOnFocus?: boolean | undefined;
            readonly fetchOnOpen?: boolean | undefined;
            readonly lazy?: boolean | "first-focus" | "first-open" | undefined;
            readonly addAll?: boolean | number | undefined;
            readonly params?: Recordable | undefined;
            readonly searchDelay?: number | undefined;
            readonly allowOnlySelect?: boolean | undefined;
        } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
        $attrs: Attrs;
        $refs: {
            [x: string]: unknown;
        } & {
            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;
        };
        $slots: Readonly<{
            [name: string]: Slot<any> | undefined;
        }>;
        $root: ComponentPublicInstance | null;
        $parent: ComponentPublicInstance | null;
        $host: Element | null;
        $emit: (event: "update:value", ...args: any[]) => void;
        $el: any;
        $options: ComponentOptionsBase<Readonly< ApFieldSelectProps> & Readonly<{
            "onUpdate:value"?: ((...args: any[]) => any) | undefined;
        }>, {
            blur: () => void;
            focus: () => void;
            request: (clear?: boolean) => Promise<void>;
        }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
            "update:value": (...args: any[]) => void;
        }, string, {
            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, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & {
            beforeCreate?: (() => void) | (() => void)[];
            created?: (() => void) | (() => void)[];
            beforeMount?: (() => void) | (() => void)[];
            mounted?: (() => void) | (() => void)[];
            beforeUpdate?: (() => void) | (() => void)[];
            updated?: (() => void) | (() => void)[];
            activated?: (() => void) | (() => void)[];
            deactivated?: (() => void) | (() => void)[];
            beforeDestroy?: (() => void) | (() => void)[];
            beforeUnmount?: (() => void) | (() => void)[];
            destroyed?: (() => void) | (() => void)[];
            unmounted?: (() => void) | (() => void)[];
            renderTracked?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
            renderTriggered?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
            errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
        };
        $forceUpdate: () => void;
        $nextTick: nextTick;
        $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
    } & Readonly<{
        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;
    }> & Omit<Readonly< ApFieldSelectProps> & Readonly<{
        "onUpdate:value"?: ((...args: any[]) => any) | undefined;
    }>, "blur" | "focus" | "request" | ("mode" | "open" | "multiple" | "disabled" | "virtual" | "autofocus" | "lazy" | "loading" | "bordered" | "allowClear" | "showArrow" | "autoClearSearchValue" | "defaultActiveFirstOption" | "labelInValue" | "showSearch" | "defaultOpen" | "emptyText" | "searchMode" | "refetchOnFocus" | "fetchOnFocus" | "addAll" | "searchDelay" | "allowOnlySelect")> & {
        blur: () => void;
        focus: () => void;
        request: (clear?: boolean) => Promise<void>;
    } & {} & ComponentCustomProperties & {} & {
        $slots: Readonly<{
            notFoundContent: any;
            suffixIcon: any;
            itemIcon: any;
            removeIcon: any;
            clearIcon: any;
            placeholder: any;
            tagRender: any;
            maxTagPlaceholder: any;
            optionLabel: any;
            default: any;
            option: any;
        }> & {
            notFoundContent: any;
            suffixIcon: any;
            itemIcon: any;
            removeIcon: any;
            clearIcon: any;
            placeholder: any;
            tagRender: any;
            maxTagPlaceholder: any;
            optionLabel: any;
            default: any;
            option: any;
        };
    }) | 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;
    };
};
