/**
 * To match accessibility requirement, we always provide an input in the component.
 * Other element will not set `tabindex` to avoid `onBlur` sequence problem.
 * For focused select, we set `aria-live="polite"` to update the accessibility content.
 *
 * ref:
 * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions
 */
import type { Mode, RenderDOMFunc } from './interface';
import type { GetLabeledValue, FilterOptions, FilterFunc, DefaultValueType, RawValueType, Key, FlattenOptionsType, SingleType, OnClear, SelectSource, CustomTagProps } from './interface/generator';
import type { OptionListProps } from './OptionList';
import type { CSSProperties, PropType, VNode, VNodeChild } from 'vue';
export declare function selectBaseProps<OptionType, ValueType>(): {
    prefixCls: StringConstructor;
    id: StringConstructor;
    options: {
        type: PropType<OptionType[]>;
    };
    mode: {
        type: PropType<Mode>;
    };
    value: {
        type: PropType<ValueType>;
        default: ValueType;
    };
    defaultValue: {
        type: PropType<ValueType>;
        default: ValueType;
    };
    labelInValue: {
        type: BooleanConstructor;
        default: any;
    };
    inputValue: StringConstructor;
    searchValue: StringConstructor;
    optionFilterProp: StringConstructor;
    /**
     * In Select, `false` means do nothing.
     * In TreeSelect, `false` will highlight match item.
     * It's by design.
     */
    filterOption: {
        type: PropType<boolean | FilterFunc<OptionType>>;
        default: any;
    };
    filterSort: {
        type: PropType<(optionA: OptionType, optionB: OptionType) => number>;
    };
    showSearch: {
        type: BooleanConstructor;
        default: any;
    };
    autoClearSearchValue: {
        type: BooleanConstructor;
        default: any;
    };
    onSearch: {
        type: PropType<(value: string) => void>;
    };
    onClear: {
        type: PropType<OnClear>;
    };
    allowClear: {
        type: BooleanConstructor;
        default: any;
    };
    clearIcon: import("vue-types").VueTypeValidableDef<any>;
    showArrow: {
        type: BooleanConstructor;
        default: any;
    };
    inputIcon: import("vue-types").VueTypeValidableDef<import("../_util/type").VueNode>;
    removeIcon: import("vue-types").VueTypeValidableDef<import("../_util/type").VueNode>;
    menuItemSelectedIcon: import("vue-types").VueTypeValidableDef<import("../_util/type").VueNode>;
    open: {
        type: BooleanConstructor;
        default: any;
    };
    defaultOpen: {
        type: BooleanConstructor;
        default: any;
    };
    listHeight: NumberConstructor;
    listItemHeight: NumberConstructor;
    dropdownStyle: {
        type: PropType<CSSProperties>;
    };
    dropdownClassName: StringConstructor;
    dropdownMatchSelectWidth: {
        type: PropType<number | boolean>;
        default: any;
    };
    virtual: {
        type: BooleanConstructor;
        default: any;
    };
    dropdownRender: {
        type: PropType<(menu: VNode) => any>;
    };
    dropdownAlign: import("vue-types").VueTypeValidableDef<any>;
    animation: StringConstructor;
    transitionName: StringConstructor;
    getPopupContainer: {
        type: PropType<RenderDOMFunc>;
    };
    direction: StringConstructor;
    disabled: {
        type: BooleanConstructor;
        default: any;
    };
    loading: {
        type: BooleanConstructor;
        default: any;
    };
    autofocus: {
        type: BooleanConstructor;
        default: any;
    };
    defaultActiveFirstOption: {
        type: BooleanConstructor;
        default: any;
    };
    notFoundContent: import("vue-types").VueTypeValidableDef<any>;
    placeholder: import("vue-types").VueTypeValidableDef<any>;
    backfill: {
        type: BooleanConstructor;
        default: any;
    };
    /** @private Internal usage. Do not use in your production. */
    getInputElement: {
        type: PropType<() => any>;
    };
    optionLabelProp: StringConstructor;
    maxTagTextLength: NumberConstructor;
    maxTagCount: {
        type: PropType<number | "responsive">;
    };
    maxTagPlaceholder: import("vue-types").VueTypeValidableDef<any>;
    tokenSeparators: {
        type: PropType<string[]>;
    };
    tagRender: {
        type: PropType<(props: CustomTagProps) => any>;
    };
    showAction: {
        type: PropType<("click" | "focus")[]>;
    };
    tabindex: {
        type: (StringConstructor | NumberConstructor)[];
    };
    onKeyup: {
        type: PropType<(e: KeyboardEvent) => void>;
    };
    onKeydown: {
        type: PropType<(e: KeyboardEvent) => void>;
    };
    onPopupScroll: {
        type: PropType<(e: UIEvent) => void>;
    };
    onDropdownVisibleChange: {
        type: PropType<(open: boolean) => void>;
    };
    onSelect: {
        type: PropType<(value: SingleType<ValueType>, option: OptionType) => void>;
    };
    onDeselect: {
        type: PropType<(value: SingleType<ValueType>, option: OptionType) => void>;
    };
    onInputKeyDown: {
        type: PropType<(e: KeyboardEvent) => void>;
    };
    onClick: {
        type: PropType<(e: MouseEvent) => void>;
    };
    onChange: {
        type: PropType<(value: ValueType, option: OptionType | OptionType[]) => void>;
    };
    onBlur: {
        type: PropType<(e: FocusEvent) => void>;
    };
    onFocus: {
        type: PropType<(e: FocusEvent) => void>;
    };
    onMousedown: {
        type: PropType<(e: MouseEvent) => void>;
    };
    onMouseenter: {
        type: PropType<(e: MouseEvent) => void>;
    };
    onMouseleave: {
        type: PropType<(e: MouseEvent) => void>;
    };
    choiceTransitionName: StringConstructor;
    /**
     * Only used in current version for internal event process.
     * Do not use in production environment.
     */
    internalProps: {
        type: PropType<{
            mark?: string;
            onClear?: OnClear;
            skipTriggerChange?: boolean;
            skipTriggerSelect?: boolean;
            onRawSelect?: (value: RawValueType, option: OptionType, source: SelectSource) => void;
            onRawDeselect?: (value: RawValueType, option: OptionType, source: SelectSource) => void;
        }>;
        default: {
            mark?: string;
            onClear?: OnClear;
            skipTriggerChange?: boolean;
            skipTriggerSelect?: boolean;
            onRawSelect?: (value: RawValueType, option: OptionType, source: SelectSource) => void;
            onRawDeselect?: (value: RawValueType, option: OptionType, source: SelectSource) => void;
        };
    };
    children: {
        type: PropType<any[]>;
    };
};
declare class Helper<T1, T2> {
    SelectBaseProps: {
        prefixCls: StringConstructor;
        id: StringConstructor;
        options: {
            type: PropType<T1[]>;
        };
        mode: {
            type: PropType<Mode>;
        };
        value: {
            type: PropType<T2>;
            default: T2;
        };
        defaultValue: {
            type: PropType<T2>;
            default: T2;
        };
        labelInValue: {
            type: BooleanConstructor;
            default: any;
        };
        inputValue: StringConstructor;
        searchValue: StringConstructor;
        optionFilterProp: StringConstructor;
        /**
         * In Select, `false` means do nothing.
         * In TreeSelect, `false` will highlight match item.
         * It's by design.
         */
        filterOption: {
            type: PropType<boolean | FilterFunc<T1>>;
            default: any;
        };
        filterSort: {
            type: PropType<(optionA: T1, optionB: T1) => number>;
        };
        showSearch: {
            type: BooleanConstructor;
            default: any;
        };
        autoClearSearchValue: {
            type: BooleanConstructor;
            default: any;
        };
        onSearch: {
            type: PropType<(value: string) => void>;
        };
        onClear: {
            type: PropType<OnClear>;
        };
        allowClear: {
            type: BooleanConstructor;
            default: any;
        };
        clearIcon: import("vue-types").VueTypeValidableDef<any>;
        showArrow: {
            type: BooleanConstructor;
            default: any;
        };
        inputIcon: import("vue-types").VueTypeValidableDef<import("../_util/type").VueNode>;
        removeIcon: import("vue-types").VueTypeValidableDef<import("../_util/type").VueNode>;
        menuItemSelectedIcon: import("vue-types").VueTypeValidableDef<import("../_util/type").VueNode>;
        open: {
            type: BooleanConstructor;
            default: any;
        };
        defaultOpen: {
            type: BooleanConstructor;
            default: any;
        };
        listHeight: NumberConstructor;
        listItemHeight: NumberConstructor;
        dropdownStyle: {
            type: PropType<CSSProperties>;
        };
        dropdownClassName: StringConstructor;
        dropdownMatchSelectWidth: {
            type: PropType<number | boolean>;
            default: any;
        };
        virtual: {
            type: BooleanConstructor;
            default: any;
        };
        dropdownRender: {
            type: PropType<(menu: VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>) => any>;
        };
        dropdownAlign: import("vue-types").VueTypeValidableDef<any>;
        animation: StringConstructor;
        transitionName: StringConstructor;
        getPopupContainer: {
            type: PropType<RenderDOMFunc>;
        };
        direction: StringConstructor;
        disabled: {
            type: BooleanConstructor;
            default: any;
        };
        loading: {
            type: BooleanConstructor;
            default: any;
        };
        autofocus: {
            type: BooleanConstructor;
            default: any;
        };
        defaultActiveFirstOption: {
            type: BooleanConstructor;
            default: any;
        };
        notFoundContent: import("vue-types").VueTypeValidableDef<any>;
        placeholder: import("vue-types").VueTypeValidableDef<any>;
        backfill: {
            type: BooleanConstructor;
            default: any;
        };
        /** @private Internal usage. Do not use in your production. */
        getInputElement: {
            type: PropType<() => any>;
        };
        optionLabelProp: StringConstructor;
        maxTagTextLength: NumberConstructor;
        maxTagCount: {
            type: PropType<number | "responsive">;
        };
        maxTagPlaceholder: import("vue-types").VueTypeValidableDef<any>;
        tokenSeparators: {
            type: PropType<string[]>;
        };
        tagRender: {
            type: PropType<(props: CustomTagProps) => any>;
        };
        showAction: {
            type: PropType<("click" | "focus")[]>;
        };
        tabindex: {
            type: (StringConstructor | NumberConstructor)[];
        };
        onKeyup: {
            type: PropType<(e: KeyboardEvent) => void>;
        };
        onKeydown: {
            type: PropType<(e: KeyboardEvent) => void>;
        };
        onPopupScroll: {
            type: PropType<(e: UIEvent) => void>;
        };
        onDropdownVisibleChange: {
            type: PropType<(open: boolean) => void>;
        };
        onSelect: {
            type: PropType<(value: SingleType<T2>, option: T1) => void>;
        };
        onDeselect: {
            type: PropType<(value: SingleType<T2>, option: T1) => void>;
        };
        onInputKeyDown: {
            type: PropType<(e: KeyboardEvent) => void>;
        };
        onClick: {
            type: PropType<(e: MouseEvent) => void>;
        };
        onChange: {
            type: PropType<(value: T2, option: T1 | T1[]) => void>;
        };
        onBlur: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onFocus: {
            type: PropType<(e: FocusEvent) => void>;
        };
        onMousedown: {
            type: PropType<(e: MouseEvent) => void>;
        };
        onMouseenter: {
            type: PropType<(e: MouseEvent) => void>;
        };
        onMouseleave: {
            type: PropType<(e: MouseEvent) => void>;
        };
        choiceTransitionName: StringConstructor;
        /**
         * Only used in current version for internal event process.
         * Do not use in production environment.
         */
        internalProps: {
            type: PropType<{
                mark?: string;
                onClear?: OnClear;
                skipTriggerChange?: boolean;
                skipTriggerSelect?: boolean;
                onRawSelect?: (value: RawValueType, option: T1, source: SelectSource) => void;
                onRawDeselect?: (value: RawValueType, option: T1, source: SelectSource) => void;
            }>;
            default: {
                mark?: string;
                onClear?: OnClear;
                skipTriggerChange?: boolean;
                skipTriggerSelect?: boolean;
                onRawSelect?: (value: RawValueType, option: T1, source: SelectSource) => void;
                onRawDeselect?: (value: RawValueType, option: T1, source: SelectSource) => void;
            };
        };
        children: {
            type: PropType<any[]>;
        };
    };
}
declare type FuncReturnType<T1, T2> = Helper<T1, T2>['SelectBaseProps'];
export declare type SelectProps<T1, T2> = FuncReturnType<T1, T2>;
export interface GenerateConfig<OptionType extends object> {
    prefixCls: string;
    components: {
        optionList: (props: Omit<OptionListProps<OptionType>, 'options'> & {
            options?: OptionType[];
        }) => JSX.Element;
    };
    /** Convert jsx tree into `OptionType[]` */
    convertChildrenToData: (children: VNodeChild | JSX.Element) => OptionType[];
    /** Flatten nest options into raw option list */
    flattenOptions: (options: OptionType[], props: any) => FlattenOptionsType<OptionType>;
    /** Convert single raw value into { label, value } format. Will be called by each value */
    getLabeledValue: GetLabeledValue<FlattenOptionsType<OptionType>>;
    filterOptions: FilterOptions<OptionType[]>;
    findValueOption: ((values: RawValueType[], options: FlattenOptionsType<OptionType>) => OptionType[]) | ((values: RawValueType[], options: FlattenOptionsType<OptionType>, info?: {
        prevValueOptions?: OptionType[][];
    }) => OptionType[]);
    /** Check if a value is disabled */
    isValueDisabled: (value: RawValueType, options: FlattenOptionsType<OptionType>) => boolean;
    warningProps?: (props: any) => void;
    fillOptionsWithMissingValue?: (options: OptionType[], value: DefaultValueType, optionLabelProp: string, labelInValue: boolean) => OptionType[];
    omitDOMProps?: (props: object) => object;
}
/**
 * This function is in internal usage.
 * Do not use it in your prod env since we may refactor this.
 */
export default function generateSelector<OptionType extends {
    value?: RawValueType;
    label?: any;
    key?: Key;
    disabled?: boolean;
}>(config: GenerateConfig<OptionType>): import("vue").DefineComponent<{
    prefixCls: StringConstructor;
    id: StringConstructor;
    options: {
        type: PropType<OptionType[]>;
    };
    mode: {
        type: PropType<Mode>;
    };
    value: {
        type: PropType<DefaultValueType>;
        default: DefaultValueType;
    };
    defaultValue: {
        type: PropType<DefaultValueType>;
        default: DefaultValueType;
    };
    labelInValue: {
        type: BooleanConstructor;
        default: any;
    };
    inputValue: StringConstructor;
    searchValue: StringConstructor;
    optionFilterProp: StringConstructor;
    /**
     * In Select, `false` means do nothing.
     * In TreeSelect, `false` will highlight match item.
     * It's by design.
     */
    filterOption: {
        type: PropType<boolean | FilterFunc<OptionType>>;
        default: any;
    };
    filterSort: {
        type: PropType<(optionA: OptionType, optionB: OptionType) => number>;
    };
    showSearch: {
        type: BooleanConstructor;
        default: any;
    };
    autoClearSearchValue: {
        type: BooleanConstructor;
        default: any;
    };
    onSearch: {
        type: PropType<(value: string) => void>;
    };
    onClear: {
        type: PropType<OnClear>;
    };
    allowClear: {
        type: BooleanConstructor;
        default: any;
    };
    clearIcon: import("vue-types").VueTypeValidableDef<any>;
    showArrow: {
        type: BooleanConstructor;
        default: any;
    };
    inputIcon: import("vue-types").VueTypeValidableDef<import("../_util/type").VueNode>;
    removeIcon: import("vue-types").VueTypeValidableDef<import("../_util/type").VueNode>;
    menuItemSelectedIcon: import("vue-types").VueTypeValidableDef<import("../_util/type").VueNode>;
    open: {
        type: BooleanConstructor;
        default: any;
    };
    defaultOpen: {
        type: BooleanConstructor;
        default: any;
    };
    listHeight: NumberConstructor;
    listItemHeight: NumberConstructor;
    dropdownStyle: {
        type: PropType<CSSProperties>;
    };
    dropdownClassName: StringConstructor;
    dropdownMatchSelectWidth: {
        type: PropType<number | boolean>;
        default: any;
    };
    virtual: {
        type: BooleanConstructor;
        default: any;
    };
    dropdownRender: {
        type: PropType<(menu: VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>) => any>;
    };
    dropdownAlign: import("vue-types").VueTypeValidableDef<any>;
    animation: StringConstructor;
    transitionName: StringConstructor;
    getPopupContainer: {
        type: PropType<RenderDOMFunc>;
    };
    direction: StringConstructor;
    disabled: {
        type: BooleanConstructor;
        default: any;
    };
    loading: {
        type: BooleanConstructor;
        default: any;
    };
    autofocus: {
        type: BooleanConstructor;
        default: any;
    };
    defaultActiveFirstOption: {
        type: BooleanConstructor;
        default: any;
    };
    notFoundContent: import("vue-types").VueTypeValidableDef<any>;
    placeholder: import("vue-types").VueTypeValidableDef<any>;
    backfill: {
        type: BooleanConstructor;
        default: any;
    };
    /** @private Internal usage. Do not use in your production. */
    getInputElement: {
        type: PropType<() => any>;
    };
    optionLabelProp: StringConstructor;
    maxTagTextLength: NumberConstructor;
    maxTagCount: {
        type: PropType<number | "responsive">;
    };
    maxTagPlaceholder: import("vue-types").VueTypeValidableDef<any>;
    tokenSeparators: {
        type: PropType<string[]>;
    };
    tagRender: {
        type: PropType<(props: CustomTagProps) => any>;
    };
    showAction: {
        type: PropType<("click" | "focus")[]>;
    };
    tabindex: {
        type: (StringConstructor | NumberConstructor)[];
    };
    onKeyup: {
        type: PropType<(e: KeyboardEvent) => void>;
    };
    onKeydown: {
        type: PropType<(e: KeyboardEvent) => void>;
    };
    onPopupScroll: {
        type: PropType<(e: UIEvent) => void>;
    };
    onDropdownVisibleChange: {
        type: PropType<(open: boolean) => void>;
    };
    onSelect: {
        type: PropType<(value: RawValueType | import("./interface/generator").LabelValueType, option: OptionType) => void>;
    };
    onDeselect: {
        type: PropType<(value: RawValueType | import("./interface/generator").LabelValueType, option: OptionType) => void>;
    };
    onInputKeyDown: {
        type: PropType<(e: KeyboardEvent) => void>;
    };
    onClick: {
        type: PropType<(e: MouseEvent) => void>;
    };
    onChange: {
        type: PropType<(value: DefaultValueType, option: OptionType | OptionType[]) => void>;
    };
    onBlur: {
        type: PropType<(e: FocusEvent) => void>;
    };
    onFocus: {
        type: PropType<(e: FocusEvent) => void>;
    };
    onMousedown: {
        type: PropType<(e: MouseEvent) => void>;
    };
    onMouseenter: {
        type: PropType<(e: MouseEvent) => void>;
    };
    onMouseleave: {
        type: PropType<(e: MouseEvent) => void>;
    };
    choiceTransitionName: StringConstructor;
    /**
     * Only used in current version for internal event process.
     * Do not use in production environment.
     */
    internalProps: {
        type: PropType<{
            mark?: string;
            onClear?: OnClear;
            skipTriggerChange?: boolean;
            skipTriggerSelect?: boolean;
            onRawSelect?: (value: RawValueType, option: OptionType, source: SelectSource) => void;
            onRawDeselect?: (value: RawValueType, option: OptionType, source: SelectSource) => void;
        }>;
        default: {
            mark?: string;
            onClear?: OnClear;
            skipTriggerChange?: boolean;
            skipTriggerSelect?: boolean;
            onRawSelect?: (value: RawValueType, option: OptionType, source: SelectSource) => void;
            onRawDeselect?: (value: RawValueType, option: OptionType, source: SelectSource) => void;
        };
    };
    children: {
        type: PropType<any[]>;
    };
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
    prefixCls?: unknown;
    id?: unknown;
    options?: unknown;
    mode?: unknown;
    value?: unknown;
    defaultValue?: unknown;
    labelInValue?: unknown;
    inputValue?: unknown;
    searchValue?: unknown;
    optionFilterProp?: unknown;
    filterOption?: unknown;
    filterSort?: unknown;
    showSearch?: unknown;
    autoClearSearchValue?: unknown;
    onSearch?: unknown;
    onClear?: unknown;
    allowClear?: unknown;
    clearIcon?: unknown;
    showArrow?: unknown;
    inputIcon?: unknown;
    removeIcon?: unknown;
    menuItemSelectedIcon?: unknown;
    open?: unknown;
    defaultOpen?: unknown;
    listHeight?: unknown;
    listItemHeight?: unknown;
    dropdownStyle?: unknown;
    dropdownClassName?: unknown;
    dropdownMatchSelectWidth?: unknown;
    virtual?: unknown;
    dropdownRender?: unknown;
    dropdownAlign?: unknown;
    animation?: unknown;
    transitionName?: unknown;
    getPopupContainer?: unknown;
    direction?: unknown;
    disabled?: unknown;
    loading?: unknown;
    autofocus?: unknown;
    defaultActiveFirstOption?: unknown;
    notFoundContent?: unknown;
    placeholder?: unknown;
    backfill?: unknown;
    getInputElement?: unknown;
    optionLabelProp?: unknown;
    maxTagTextLength?: unknown;
    maxTagCount?: unknown;
    maxTagPlaceholder?: unknown;
    tokenSeparators?: unknown;
    tagRender?: unknown;
    showAction?: unknown;
    tabindex?: unknown;
    onKeyup?: unknown;
    onKeydown?: unknown;
    onPopupScroll?: unknown;
    onDropdownVisibleChange?: unknown;
    onSelect?: unknown;
    onDeselect?: unknown;
    onInputKeyDown?: unknown;
    onClick?: unknown;
    onChange?: unknown;
    onBlur?: unknown;
    onFocus?: unknown;
    onMousedown?: unknown;
    onMouseenter?: unknown;
    onMouseleave?: unknown;
    choiceTransitionName?: unknown;
    internalProps?: unknown;
    children?: unknown;
} & {
    value: string | number | import("./interface/generator").LabelValueType | RawValueType[] | import("./interface/generator").LabelValueType[];
    defaultValue: string | number | import("./interface/generator").LabelValueType | RawValueType[] | import("./interface/generator").LabelValueType[];
    internalProps: {
        mark?: string;
        onClear?: OnClear;
        skipTriggerChange?: boolean;
        skipTriggerSelect?: boolean;
        onRawSelect?: (value: RawValueType, option: OptionType, source: SelectSource) => void;
        onRawDeselect?: (value: RawValueType, option: OptionType, source: SelectSource) => void;
    };
} & {
    open?: boolean;
    loading?: boolean;
    disabled?: boolean;
    id?: string;
    children?: any[];
    mode?: Mode;
    animation?: string;
    onFocus?: (e: FocusEvent) => void;
    onBlur?: (e: FocusEvent) => void;
    onChange?: (value: DefaultValueType, option: OptionType | OptionType[]) => void;
    onKeydown?: (e: KeyboardEvent) => void;
    onKeyup?: (e: KeyboardEvent) => void;
    onClick?: (e: MouseEvent) => void;
    onMousedown?: (e: MouseEvent) => void;
    onMouseenter?: (e: MouseEvent) => void;
    onMouseleave?: (e: MouseEvent) => void;
    onSelect?: (value: RawValueType | import("./interface/generator").LabelValueType, option: OptionType) => void;
    prefixCls?: string;
    getPopupContainer?: RenderDOMFunc;
    options?: OptionType[];
    notFoundContent?: any;
    optionLabelProp?: string;
    direction?: string;
    autofocus?: boolean;
    placeholder?: any;
    tabindex?: string | number;
    transitionName?: string;
    allowClear?: boolean;
    showSearch?: boolean;
    onSearch?: (value: string) => void;
    inputValue?: string;
    filterOption?: boolean | FilterFunc<OptionType>;
    showArrow?: boolean;
    virtual?: boolean;
    dropdownMatchSelectWidth?: number | boolean;
    inputIcon?: import("../_util/type").VueNode;
    getInputElement?: () => any;
    backfill?: boolean;
    choiceTransitionName?: string;
    removeIcon?: import("../_util/type").VueNode;
    clearIcon?: any;
    dropdownRender?: (menu: VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>) => any;
    listHeight?: number;
    listItemHeight?: number;
    dropdownClassName?: string;
    dropdownAlign?: any;
    defaultOpen?: boolean;
    maxTagPlaceholder?: any;
    showAction?: ("click" | "focus")[];
    defaultActiveFirstOption?: boolean;
    menuItemSelectedIcon?: import("../_util/type").VueNode;
    searchValue?: string;
    labelInValue?: boolean;
    optionFilterProp?: string;
    dropdownStyle?: unknown;
    maxTagCount?: number | "responsive";
    maxTagTextLength?: number;
    onInputKeyDown?: (e: KeyboardEvent) => void;
    filterSort?: (optionA: OptionType, optionB: OptionType) => number;
    autoClearSearchValue?: boolean;
    onClear?: OnClear;
    tokenSeparators?: string[];
    tagRender?: (props: CustomTagProps) => any;
    onPopupScroll?: (e: UIEvent) => void;
    onDropdownVisibleChange?: (open: boolean) => void;
    onDeselect?: (value: RawValueType | import("./interface/generator").LabelValueType, option: OptionType) => void;
}>, {
    open: boolean;
    loading: boolean;
    disabled: boolean;
    value: string | number | import("./interface/generator").LabelValueType | RawValueType[] | import("./interface/generator").LabelValueType[];
    autofocus: boolean;
    defaultValue: string | number | import("./interface/generator").LabelValueType | RawValueType[] | import("./interface/generator").LabelValueType[];
    allowClear: boolean;
    showSearch: boolean;
    filterOption: boolean | FilterFunc<OptionType>;
    showArrow: boolean;
    virtual: boolean;
    dropdownMatchSelectWidth: number | boolean;
    backfill: boolean;
    defaultOpen: boolean;
    defaultActiveFirstOption: boolean;
    labelInValue: boolean;
    autoClearSearchValue: boolean;
    internalProps: {
        mark?: string;
        onClear?: OnClear;
        skipTriggerChange?: boolean;
        skipTriggerSelect?: boolean;
        onRawSelect?: (value: RawValueType, option: OptionType, source: SelectSource) => void;
        onRawDeselect?: (value: RawValueType, option: OptionType, source: SelectSource) => void;
    };
}>;
export {};
