import { type PropType } from 'vue';
import type { FetchValueOptions, FetchValueReturnType } from '../typing';
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    class: {
        type: StringConstructor;
        default: string;
    };
    value: {
        type: ObjectConstructor;
        default: undefined;
    };
    placeholder: {
        type: StringConstructor;
    };
    fetchValue: {
        type: PropType<(option: FetchValueOptions) => Promise<FetchValueReturnType>>;
    };
    isMulti: {
        type: BooleanConstructor;
        default: boolean;
    };
    change: {
        type: FunctionConstructor;
    };
    relationFieldKey: {
        type: StringConstructor;
        default: string;
    };
    validator: {
        type: PropType<(value: any) => boolean>;
    };
    queryOne: {
        type: PropType<(value: any) => Promise<any>>;
    };
    allowClear: {
        type: BooleanConstructor;
    };
}>, {
    loadMoreLoading: import("vue").Ref<boolean, boolean>;
    options: import("vue").Ref<Record<string, unknown>[], Record<string, unknown>[]>;
    fillOptions: (opts?: FetchValueReturnType) => void;
    search: import("lodash").DebouncedFunc<(searchValue: string, forceSearch?: any) => Promise<void>>;
    loadMore: (forceLoad?: boolean) => Promise<void>;
    dropdownVisibleChange: (visible: boolean) => void;
    blur: () => void;
    validateState: import("vue").Ref<boolean, boolean>;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:resetValue"[], "update:resetValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    class: {
        type: StringConstructor;
        default: string;
    };
    value: {
        type: ObjectConstructor;
        default: undefined;
    };
    placeholder: {
        type: StringConstructor;
    };
    fetchValue: {
        type: PropType<(option: FetchValueOptions) => Promise<FetchValueReturnType>>;
    };
    isMulti: {
        type: BooleanConstructor;
        default: boolean;
    };
    change: {
        type: FunctionConstructor;
    };
    relationFieldKey: {
        type: StringConstructor;
        default: string;
    };
    validator: {
        type: PropType<(value: any) => boolean>;
    };
    queryOne: {
        type: PropType<(value: any) => Promise<any>>;
    };
    allowClear: {
        type: BooleanConstructor;
    };
}>> & Readonly<{
    "onUpdate:resetValue"?: ((...args: any[]) => any) | undefined;
}>, {
    class: string;
    value: Record<string, any>;
    isMulti: boolean;
    relationFieldKey: string;
    allowClear: boolean;
}, {}, {
    SingleSelect: any;
    MultiSelect: any;
}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
