/**
 * 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
 *
 * New api:
 * - listHeight
 * - listItemHeight
 * - component
 *
 * Remove deprecated api:
 * - multiple
 * - tags
 * - combobox
 * - firstActiveValue
 * - dropdownMenuStyle
 * - openClassName (Not list in api)
 *
 * Update:
 * - `backfill` only support `combobox` mode
 * - `combobox` mode not support `labelInValue` since it's meaningless
 * - `getInputElement` only support `combobox` mode
 * - `onChange` return OptionData instead of ReactNode
 * - `filterOption` `onChange` `onSelect` accept OptionData instead of ReactNode
 * - `combobox` mode trigger `onChange` will get `undefined` if no `value` match in Option
 * - `combobox` mode not support `optionLabelProp`
 */
import type { OptionsType as SelectOptionsType } from './interface';
import type { SelectProps } from './generate';
import type { DefaultValueType } from './interface/generator';
export declare type ExportedSelectProps<T extends DefaultValueType = DefaultValueType> = SelectProps<SelectOptionsType[number], T>;
export declare function selectProps<T>(): {
    prefixCls: StringConstructor;
    id: StringConstructor;
    options: {
        type: import("vue").PropType<(import("./interface").OptionData | import("./interface").OptionGroupData)[]>;
    };
    mode: {
        type: import("vue").PropType<import("./interface").Mode>;
    };
    value: {
        type: import("vue").PropType<T>;
        default: T;
    };
    defaultValue: {
        type: import("vue").PropType<T>;
        default: T;
    };
    labelInValue: {
        type: BooleanConstructor;
        default: any;
    };
    inputValue: StringConstructor;
    searchValue: StringConstructor;
    optionFilterProp: StringConstructor;
    filterOption: {
        type: import("vue").PropType<boolean | import("./interface/generator").FilterFunc<import("./interface").OptionData | import("./interface").OptionGroupData>>;
        default: any;
    };
    filterSort: {
        type: import("vue").PropType<(optionA: import("./interface").OptionData | import("./interface").OptionGroupData, optionB: import("./interface").OptionData | import("./interface").OptionGroupData) => number>;
    };
    showSearch: {
        type: BooleanConstructor;
        default: any;
    };
    autoClearSearchValue: {
        type: BooleanConstructor;
        default: any;
    };
    onSearch: {
        type: import("vue").PropType<(value: string) => void>;
    };
    onClear: {
        type: import("vue").PropType<import("./interface/generator").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: import("vue").PropType<import("vue").CSSProperties>;
    };
    dropdownClassName: StringConstructor;
    dropdownMatchSelectWidth: {
        type: import("vue").PropType<number | boolean>;
        default: any;
    };
    virtual: {
        type: BooleanConstructor;
        default: any;
    };
    dropdownRender: {
        type: import("vue").PropType<(menu: import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>) => any>;
    };
    dropdownAlign: import("vue-types").VueTypeValidableDef<any>;
    animation: StringConstructor;
    transitionName: StringConstructor;
    getPopupContainer: {
        type: import("vue").PropType<import("./interface").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;
    };
    getInputElement: {
        type: import("vue").PropType<() => any>;
    };
    optionLabelProp: StringConstructor;
    maxTagTextLength: NumberConstructor;
    maxTagCount: {
        type: import("vue").PropType<number | "responsive">;
    };
    maxTagPlaceholder: import("vue-types").VueTypeValidableDef<any>;
    tokenSeparators: {
        type: import("vue").PropType<string[]>;
    };
    tagRender: {
        type: import("vue").PropType<(props: import("./interface/generator").CustomTagProps) => any>;
    };
    showAction: {
        type: import("vue").PropType<("click" | "focus")[]>;
    };
    tabindex: {
        type: (StringConstructor | NumberConstructor)[];
    };
    onKeyup: {
        type: import("vue").PropType<(e: any) => void>;
    };
    onKeydown: {
        type: import("vue").PropType<(e: any) => void>;
    };
    onPopupScroll: {
        type: import("vue").PropType<(e: any) => void>;
    };
    onDropdownVisibleChange: {
        type: import("vue").PropType<(open: boolean) => void>;
    };
    onSelect: {
        type: import("vue").PropType<(value: import("./interface/generator").SingleType<T>, option: import("./interface").OptionData | import("./interface").OptionGroupData) => void>;
    };
    onDeselect: {
        type: import("vue").PropType<(value: import("./interface/generator").SingleType<T>, option: import("./interface").OptionData | import("./interface").OptionGroupData) => void>;
    };
    onInputKeyDown: {
        type: import("vue").PropType<(e: any) => void>;
    };
    onClick: {
        type: import("vue").PropType<(e: any) => void>;
    };
    onChange: {
        type: import("vue").PropType<(value: T, option: import("./interface").OptionData | import("./interface").OptionGroupData | (import("./interface").OptionData | import("./interface").OptionGroupData)[]) => void>;
    };
    onBlur: {
        type: import("vue").PropType<(e: any) => void>;
    };
    onFocus: {
        type: import("vue").PropType<(e: any) => void>;
    };
    onMousedown: {
        type: import("vue").PropType<(e: any) => void>;
    };
    onMouseenter: {
        type: import("vue").PropType<(e: any) => void>;
    };
    onMouseleave: {
        type: import("vue").PropType<(e: any) => void>;
    };
    choiceTransitionName: StringConstructor;
    internalProps: {
        type: import("vue").PropType<{
            mark?: string;
            onClear?: import("./interface/generator").OnClear;
            skipTriggerChange?: boolean;
            skipTriggerSelect?: boolean;
            onRawSelect?: (value: import("./interface/generator").RawValueType, option: import("./interface").OptionData | import("./interface").OptionGroupData, source: import("./interface/generator").SelectSource) => void;
            onRawDeselect?: (value: import("./interface/generator").RawValueType, option: import("./interface").OptionData | import("./interface").OptionGroupData, source: import("./interface/generator").SelectSource) => void;
        }>;
        default: {
            mark?: string;
            onClear?: import("./interface/generator").OnClear;
            skipTriggerChange?: boolean;
            skipTriggerSelect?: boolean;
            onRawSelect?: (value: import("./interface/generator").RawValueType, option: import("./interface").OptionData | import("./interface").OptionGroupData, source: import("./interface/generator").SelectSource) => void;
            onRawDeselect?: (value: import("./interface/generator").RawValueType, option: import("./interface").OptionData | import("./interface").OptionGroupData, source: import("./interface/generator").SelectSource) => void;
        };
    };
    children: {
        type: import("vue").PropType<any[]>;
    };
};
declare const Select: import("vue").DefineComponent<any, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<any>, {} | {
    [x: string]: any;
}>;
export default Select;
