import type { VueTypeDef, VueTypeValidableDef } from 'vue-types';
import type { DefineComponent, Ref, ComputedRef, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps } from 'vue';
import type { Recordable } from '../../typings/global';
declare type OptionItem = {
    value: string | number;
    label: string;
    disabeld?: boolean;
};
declare type FieldNames = {
    label: string;
    value: string;
};
declare const _default: DefineComponent<{
    value: VueTypeDef<Object | String | Number | 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>[];
    };
    mode: VueTypeValidableDef<"multiple" | "tags" | "SECRET_COMBOBOX_MODE_DO_NOT_USE">;
    maxTagCount: VueTypeValidableDef<number> & {
        default: number;
    };
    maxTagTextLength: VueTypeValidableDef<number> & {
        default: number;
    };
    showArrow: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    showCheckBox: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
}, {
    prefixCls: string;
    loading: Ref<boolean>;
    state: any;
    innerOptions: ComputedRef<{
        label: any;
        value: any;
    }[]>;
    handleChange: (value: any, ...args: any[]) => void;
    handleVisibleChange: (open: boolean) => void;
    isMultipleMode: ComputedRef<boolean>;
    getTitle: ComputedRef<any>;
}, 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;
    mode?: unknown;
    maxTagCount?: unknown;
    maxTagTextLength?: unknown;
    showArrow?: unknown;
    showCheckBox?: unknown;
} & {
    options: Recordable<any>[];
    placeholder: string;
    allowClear: boolean;
    fieldNames: FieldNames;
    maxTagCount: number;
    maxTagTextLength: number;
    showArrow: boolean;
    resultField: string;
    numberToString: boolean;
    params: Recordable<any>;
    immediate: boolean;
    alwaysLoad: boolean;
    showCheckBox: boolean;
} & {
    value?: Object | String | Number | any[] | undefined;
    mode?: "multiple" | "tags" | "SECRET_COMBOBOX_MODE_DO_NOT_USE" | undefined;
    api?: ((...args: any[]) => Promise<Recordable | OptionItem[]>) | 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>[];
    placeholder: string;
    allowClear: boolean;
    fieldNames: FieldNames;
    maxTagCount: number;
    maxTagTextLength: number;
    showArrow: boolean;
    resultField: string;
    numberToString: boolean;
    params: Recordable<any>;
    immediate: boolean;
    alwaysLoad: boolean;
    showCheckBox: boolean;
}>;
export default _default;
