import type { VueTypeValidableDef } from 'vue-types';
import type { DefineComponent, Ref, VNode, RendererNode, RendererElement, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps } from 'vue';
import type { Recordable } from '../../typings/global';
import type { FieldNames, Option } from './types';
declare const _default: DefineComponent<{
    value: VueTypeValidableDef<(string | number)[]> & {
        default: () => (string | number)[];
    };
    api: VueTypeValidableDef<(arg?: Recordable<any> | undefined) => Promise<Recordable | Option[]>>;
    resultField: VueTypeValidableDef<string> & {
        default: string;
    };
    numberToString: VueTypeValidableDef<boolean> & {
        default: boolean;
    };
    fieldNames: VueTypeValidableDef<FieldNames> & {
        default: () => FieldNames;
    };
    params: VueTypeValidableDef<Recordable<any>> & {
        default: () => Recordable<any>;
    };
    asyncFetchChildrenParamkey: VueTypeValidableDef<string> & {
        default: string;
    };
    placeholder: VueTypeValidableDef<string> & {
        default: string;
    };
    checkIsLeaf: VueTypeValidableDef<(data: Recordable) => boolean>;
}, {
    prefixCls: string;
    loading: Ref<boolean>;
    options: Ref<{
        value?: any;
        label?: string | undefined;
        disabled?: boolean | undefined;
        loading?: boolean | undefined;
        isLeaf?: boolean | undefined;
        children?: any[] | undefined;
    }[]>;
    state: any;
    spin: VNode<RendererNode, RendererElement, {
        [key: string]: any;
    }>;
    loadChildrenData: (selectedOptions: Option[]) => Promise<void>;
    handleChange: (value: any, ...args: any[]) => void;
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("change" | "update:value")[], "change" | "update:value", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
    value?: unknown;
    api?: unknown;
    resultField?: unknown;
    numberToString?: unknown;
    fieldNames?: unknown;
    params?: unknown;
    asyncFetchChildrenParamkey?: unknown;
    placeholder?: unknown;
    checkIsLeaf?: unknown;
} & {
    value: (string | number)[];
    placeholder: string;
    fieldNames: FieldNames;
    resultField: string;
    numberToString: boolean;
    params: Recordable<any>;
    asyncFetchChildrenParamkey: string;
} & {
    api?: ((arg?: Recordable<any> | undefined) => Promise<Recordable | Option[]>) | undefined;
    checkIsLeaf?: ((data: Recordable) => boolean) | undefined;
}> & {
    "onUpdate:value"?: ((...args: any[]) => any) | undefined;
    onChange?: ((...args: any[]) => any) | undefined;
}, {
    value: (string | number)[];
    placeholder: string;
    fieldNames: FieldNames;
    resultField: string;
    numberToString: boolean;
    params: Recordable<any>;
    asyncFetchChildrenParamkey: string;
}>;
export default _default;
