import type { ShowCountProps } from 'ant-design-vue/lib/input/inputProps';
import type { FocusEventHandler, ChangeEventHandler, KeyboardEventHandler } from 'ant-design-vue/lib/_util/EventInterface';
import type { ButtonSize } from 'ant-design-vue/lib/button';
import type { LiteralUnion, VueNode } from 'ant-design-vue/lib/_util/type';
import type { VueTypeValidableDef } from 'vue-types';
import type { DefineComponent, Ref, ComputedRef, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps } from 'vue';
import type { Recordable } from '../../typings/global';
import type { EmptyProps } from 'ant-design-vue';
declare type OptionItem = {
    value: string | number;
    label: string;
    disabled?: boolean;
    show?: boolean;
};
declare type FieldNames = {
    label: string;
    value: string;
};
declare const _default: DefineComponent<{
    value: VueTypeValidableDef<any[]> & {
        default: () => any[];
    };
    allowClear: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    api: VueTypeValidableDef<(...args: any[]) => Promise<Recordable | OptionItem[]>>;
    resultField: VueTypeValidableDef<string> & {
        default: string;
    };
    numberToString: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    fieldNames: VueTypeValidableDef<FieldNames> & {
        default: () => FieldNames;
    };
    params: VueTypeValidableDef<Recordable<any>> & {
        default: () => Recordable<any>;
    };
    immediate: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    alwaysLoad: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    placeholder: VueTypeValidableDef<string> & {
        default: string;
    };
    options: VueTypeValidableDef<Recordable<any>[]> & {
        default: () => Recordable<any>[];
    };
    showArrow: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    showSearch: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    searchInputProps: VueTypeValidableDef<Partial<{
        id?: unknown;
        prefixCls?: unknown;
        inputPrefixCls?: unknown;
        defaultValue?: unknown;
        value?: unknown;
        placeholder?: unknown;
        autocomplete?: unknown;
        type?: unknown;
        name?: unknown;
        size?: unknown;
        disabled?: unknown;
        readonly?: unknown;
        addonBefore?: unknown;
        addonAfter?: unknown;
        prefix?: unknown;
        suffix?: unknown;
        autofocus?: unknown;
        allowClear?: unknown;
        lazy?: unknown;
        maxlength?: unknown;
        loading?: unknown;
        bordered?: unknown;
        showCount?: unknown;
        htmlSize?: unknown;
        onPressEnter?: unknown;
        onKeydown?: unknown;
        onKeyup?: unknown;
        onFocus?: unknown;
        onBlur?: unknown;
        onChange?: unknown;
        onInput?: unknown;
        'onUpdate:value'?: unknown;
        valueModifiers?: unknown;
        hidden?: unknown;
    } & {
        type: LiteralUnion<"number" | "search" | "button" | "text" | "submit" | "reset" | "color" | "time" | "image" | "hidden" | "date" | "week" | "month" | "checkbox" | "radio" | "range" | "tel" | "url" | "email" | "datetime-local" | "file" | "password", string>;
        lazy: boolean;
        hidden: boolean;
    } & {
        size?: ButtonSize;
        bordered?: boolean | undefined;
        "onUpdate:value"?: ((val: string) => void) | undefined;
        onFocus?: FocusEventHandler | undefined;
        onBlur?: FocusEventHandler | undefined;
        onChange?: ChangeEventHandler | undefined;
        onKeydown?: KeyboardEventHandler | undefined;
        onKeyup?: KeyboardEventHandler | undefined;
        prefixCls?: string | undefined;
        disabled?: boolean | undefined;
        value?: string | number | undefined;
        loading?: boolean | undefined;
        defaultValue?: string | number | undefined;
        placeholder?: string | number | undefined;
        allowClear?: boolean | undefined;
        autofocus?: boolean | undefined;
        id?: string | undefined;
        name?: string | undefined;
        onInput?: ChangeEventHandler | undefined;
        readonly?: boolean | undefined;
        inputPrefixCls?: string | undefined;
        autocomplete?: string | undefined;
        addonBefore?: any;
        addonAfter?: any;
        prefix?: any;
        suffix?: any;
        maxlength?: number | undefined;
        showCount?: boolean | ShowCountProps | undefined;
        htmlSize?: number | undefined;
        onPressEnter?: KeyboardEventHandler | undefined;
        valueModifiers?: Record<string, any> | undefined;
    }>>;
    optionFilterProp: VueTypeValidableDef<string> & {
        default: string;
    };
    showEmpty: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    emptyProps: VueTypeValidableDef<EmptyProps>;
    tokenSeparators: VueTypeValidableDef<string> & {
        default: string;
    };
    checkAllText: VueTypeValidableDef<string> & {
        default: string;
    };
    position: VueTypeValidableDef<string> & {
        default: string;
    };
}, {
    onCheckAllChange: (e: any) => void;
    selectorElRef: Ref<any>;
    innerValue: Ref<string | undefined>;
    prefixCls: string;
    loading: Ref<boolean>;
    innerOptions: ComputedRef<OptionItem[]>;
    handleChange: () => void;
    handleVisibleChange: (open: boolean) => void;
    checkedList: Ref<(string | number)[]>;
    onChange: (checkedData: (string | number)[]) => void;
    searchValue: Ref<string>;
    simpleImage: VueNode;
    handleWheel: (e: WheelEvent) => void;
    handleClick: () => void;
    opened: Ref<boolean>;
    isEmpty: ComputedRef<boolean>;
    getStyle: ComputedRef<{
        left: string;
        right: string;
        marginLeft?: undefined;
    } | {
        left: string;
        marginLeft: string;
        right?: undefined;
    }>;
    indeterminate: Ref<boolean>;
    checkAll: Ref<boolean>;
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("change" | "update:value" | "options-change" | "search")[], "change" | "update:value" | "search" | "options-change", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
    value?: unknown;
    allowClear?: unknown;
    api?: unknown;
    resultField?: unknown;
    numberToString?: unknown;
    fieldNames?: unknown;
    params?: unknown;
    immediate?: unknown;
    alwaysLoad?: unknown;
    placeholder?: unknown;
    options?: unknown;
    showArrow?: unknown;
    showSearch?: unknown;
    searchInputProps?: unknown;
    optionFilterProp?: unknown;
    showEmpty?: unknown;
    emptyProps?: unknown;
    tokenSeparators?: unknown;
    checkAllText?: unknown;
    position?: unknown;
} & {
    options: Recordable<any>[];
    value: any[];
    placeholder: string;
    allowClear: boolean;
    fieldNames: FieldNames;
    showSearch: boolean;
    showArrow: boolean;
    resultField: string;
    numberToString: boolean;
    params: Recordable<any>;
    tokenSeparators: string;
    optionFilterProp: string;
    immediate: boolean;
    alwaysLoad: boolean;
    position: string;
    showEmpty: boolean;
    checkAllText: string;
} & {
    api?: ((...args: any[]) => Promise<Recordable | OptionItem[]>) | undefined;
    searchInputProps?: Partial<{
        id?: unknown;
        prefixCls?: unknown;
        inputPrefixCls?: unknown;
        defaultValue?: unknown;
        value?: unknown;
        placeholder?: unknown;
        autocomplete?: unknown;
        type?: unknown;
        name?: unknown;
        size?: unknown;
        disabled?: unknown;
        readonly?: unknown;
        addonBefore?: unknown;
        addonAfter?: unknown;
        prefix?: unknown;
        suffix?: unknown;
        autofocus?: unknown;
        allowClear?: unknown;
        lazy?: unknown;
        maxlength?: unknown;
        loading?: unknown;
        bordered?: unknown;
        showCount?: unknown;
        htmlSize?: unknown;
        onPressEnter?: unknown;
        onKeydown?: unknown;
        onKeyup?: unknown;
        onFocus?: unknown;
        onBlur?: unknown;
        onChange?: unknown;
        onInput?: unknown;
        'onUpdate:value'?: unknown;
        valueModifiers?: unknown;
        hidden?: unknown;
    } & {
        type: LiteralUnion<"number" | "search" | "button" | "text" | "submit" | "reset" | "color" | "time" | "image" | "hidden" | "date" | "week" | "month" | "checkbox" | "radio" | "range" | "tel" | "url" | "email" | "datetime-local" | "file" | "password", string>;
        lazy: boolean;
        hidden: boolean;
    } & {
        size?: ButtonSize;
        bordered?: boolean | undefined;
        "onUpdate:value"?: ((val: string) => void) | undefined;
        onFocus?: FocusEventHandler | undefined;
        onBlur?: FocusEventHandler | undefined;
        onChange?: ChangeEventHandler | undefined;
        onKeydown?: KeyboardEventHandler | undefined;
        onKeyup?: KeyboardEventHandler | undefined;
        prefixCls?: string | undefined;
        disabled?: boolean | undefined;
        value?: string | number | undefined;
        loading?: boolean | undefined;
        defaultValue?: string | number | undefined;
        placeholder?: string | number | undefined;
        allowClear?: boolean | undefined;
        autofocus?: boolean | undefined;
        id?: string | undefined;
        name?: string | undefined;
        onInput?: ChangeEventHandler | undefined;
        readonly?: boolean | undefined;
        inputPrefixCls?: string | undefined;
        autocomplete?: string | undefined;
        addonBefore?: any;
        addonAfter?: any;
        prefix?: any;
        suffix?: any;
        maxlength?: number | undefined;
        showCount?: boolean | ShowCountProps | undefined;
        htmlSize?: number | undefined;
        onPressEnter?: KeyboardEventHandler | undefined;
        valueModifiers?: Record<string, any> | undefined;
    }> | undefined;
    emptyProps?: EmptyProps | undefined;
}> & {
    "onUpdate:value"?: ((...args: any[]) => any) | undefined;
    onChange?: ((...args: any[]) => any) | undefined;
    onSearch?: ((...args: any[]) => any) | undefined;
    "onOptions-change"?: ((...args: any[]) => any) | undefined;
}, {
    options: Recordable<any>[];
    value: any[];
    placeholder: string;
    allowClear: boolean;
    fieldNames: FieldNames;
    showSearch: boolean;
    showArrow: boolean;
    resultField: string;
    numberToString: boolean;
    params: Recordable<any>;
    tokenSeparators: string;
    optionFilterProp: string;
    immediate: boolean;
    alwaysLoad: boolean;
    position: string;
    showEmpty: boolean;
    checkAllText: string;
}>;
export default _default;
