import type { VueTypeValidableDef, VueTypeDef } from 'vue-types';
import type { DefineComponent, ComputedRef, Ref, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps } from 'vue';
import type { Recordable } from '../../typings/global';
declare type OptionItem = {
    label: string;
    value: string;
    disabled?: boolean;
};
declare type FieldNames = {
    label: string;
    value: string;
};
declare const _default: DefineComponent<{
    api: VueTypeValidableDef<(arg?: Recordable<any> | undefined) => Promise<Recordable | OptionItem[]>>;
    params: VueTypeValidableDef<Recordable<any>> & {
        default: () => Recordable<any>;
    };
    resultField: VueTypeValidableDef<string> & {
        default: string;
    };
    buttonStyle: VueTypeDef<"outline" | "solid"> & {
        default: "outline" | "solid";
    };
    value: VueTypeValidableDef<any>;
    fieldNames: VueTypeValidableDef<FieldNames> & {
        default: () => FieldNames;
    };
    optionType: VueTypeDef<"default" | "button"> & {
        default: "default" | "button";
    };
    size: VueTypeDef<"small" | "large" | "default"> & {
        default: "small" | "large" | "default";
    };
}, {
    getClass: ComputedRef<string[]>;
    getGroupProps: ComputedRef<{
        buttonStyle: "outline" | "solid";
        optionType: "default" | "button";
        size: "small" | "large" | "default";
    }>;
    state: any;
    options: Ref<{
        label: string;
        value: string;
        disabled?: boolean | undefined;
    }[]>;
    loading: Ref<boolean>;
    handleChange: (e: any) => void;
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("change" | "update:value" | "options-change")[], "change" | "update:value" | "options-change", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
    api?: unknown;
    params?: unknown;
    resultField?: unknown;
    buttonStyle?: unknown;
    value?: unknown;
    fieldNames?: unknown;
    optionType?: unknown;
    size?: unknown;
} & {
    size: "small" | "large" | "default";
    fieldNames: FieldNames;
    resultField: string;
    params: Recordable<any>;
    buttonStyle: "outline" | "solid";
    optionType: "default" | "button";
} & {
    value?: any;
    api?: ((arg?: Recordable<any> | undefined) => Promise<Recordable | OptionItem[]>) | undefined;
}> & {
    "onUpdate:value"?: ((...args: any[]) => any) | undefined;
    onChange?: ((...args: any[]) => any) | undefined;
    "onOptions-change"?: ((...args: any[]) => any) | undefined;
}, {
    size: "small" | "large" | "default";
    fieldNames: FieldNames;
    resultField: string;
    params: Recordable<any>;
    buttonStyle: "outline" | "solid";
    optionType: "default" | "button";
}>;
export default _default;
