import { ApFormItemSlots } from '../../interface';
import { ApFormItemRadioProps } from '../interface';
import { CreateComponentPublicInstanceWithMixins, ComponentOptionsMixin, PublicProps, GlobalComponents, GlobalDirectives, ExtractPropTypes, PropType, ComponentProvideOptions, DefineComponent } from 'vue';
import { ApFieldRadioProps, FieldMode } from '../../..';
import { VueTypeValidableDef } from '../../../../node_modules/vue-types';
import { RadioGroupChildOption } from '@aplus-frontend/antdv/es/radio/Group';
import { RadioGroupButtonStyle, RadioGroupOptionType } from '@aplus-frontend/antdv/es/radio/interface';
import { RadioChangeEvent } from '@aplus-frontend/antdv';
import { VueNode } from '@aplus-frontend/antdv/es/_util/type';
type ApFormItemRadioSlots = Omit<ApFormItemSlots, 'default'>;
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<ApFormItemRadioSlots> & ApFormItemRadioSlots;
    refs: {
        radioRef: CreateComponentPublicInstanceWithMixins<Readonly< ApFieldRadioProps> & Readonly<{
            "onUpdate:value"?: ((...args: any[]) => any) | undefined;
        }>, {
            request: () => void;
        }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
            "update:value": (...args: any[]) => void;
        }, PublicProps, {
            mode: FieldMode;
            vertical: boolean;
            disabled: boolean;
            emptyText: string;
        }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
            radioGroupRef: CreateComponentPublicInstanceWithMixins<Readonly< ExtractPropTypes<{
                prefixCls: StringConstructor;
                value: VueTypeValidableDef<any>;
                size: {
                    type: PropType<"default" | "small" | "large">;
                    default: "default" | "small" | "large";
                };
                options: {
                    type: PropType<(string | number | RadioGroupChildOption)[]>;
                    default: (string | number | RadioGroupChildOption)[];
                };
                disabled: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                name: StringConstructor;
                buttonStyle: {
                    type: PropType<RadioGroupButtonStyle>;
                    default: RadioGroupButtonStyle;
                };
                id: StringConstructor;
                block: BooleanConstructor;
                optionType: {
                    type: PropType<RadioGroupOptionType>;
                    default: RadioGroupOptionType;
                };
                onChange: {
                    type: PropType<(e: RadioChangeEvent) => void>;
                    default: (e: RadioChangeEvent) => void;
                };
                'onUpdate:value': {
                    type: PropType<(val: any) => void>;
                    default: (val: any) => void;
                };
                vertical: {
                    type: BooleanConstructor;
                    default: boolean;
                };
            }>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
                size: "default" | "small" | "large";
                vertical: boolean;
                onChange: (e: RadioChangeEvent) => void;
                block: boolean;
                disabled: boolean;
                'onUpdate:value': (val: any) => void;
                options: (string | number | RadioGroupChildOption)[];
                buttonStyle: RadioGroupButtonStyle;
                optionType: RadioGroupOptionType;
            }, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
                P: {};
                B: {};
                D: {};
                C: {};
                M: {};
                Defaults: {};
            }, Readonly< ExtractPropTypes<{
                prefixCls: StringConstructor;
                value: VueTypeValidableDef<any>;
                size: {
                    type: PropType<"default" | "small" | "large">;
                    default: "default" | "small" | "large";
                };
                options: {
                    type: PropType<(string | number | RadioGroupChildOption)[]>;
                    default: (string | number | RadioGroupChildOption)[];
                };
                disabled: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                name: StringConstructor;
                buttonStyle: {
                    type: PropType<RadioGroupButtonStyle>;
                    default: RadioGroupButtonStyle;
                };
                id: StringConstructor;
                block: BooleanConstructor;
                optionType: {
                    type: PropType<RadioGroupOptionType>;
                    default: RadioGroupOptionType;
                };
                onChange: {
                    type: PropType<(e: RadioChangeEvent) => void>;
                    default: (e: RadioChangeEvent) => void;
                };
                'onUpdate:value': {
                    type: PropType<(val: any) => void>;
                    default: (val: any) => void;
                };
                vertical: {
                    type: BooleanConstructor;
                    default: boolean;
                };
            }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
                size: "default" | "small" | "large";
                vertical: boolean;
                onChange: (e: RadioChangeEvent) => void;
                block: boolean;
                disabled: boolean;
                'onUpdate:value': (val: any) => void;
                options: (string | number | RadioGroupChildOption)[];
                buttonStyle: RadioGroupButtonStyle;
                optionType: RadioGroupOptionType;
            }> | null;
        }, any, ComponentProvideOptions, {
            P: {};
            B: {};
            D: {};
            C: {};
            M: {};
            Defaults: {};
        }, Readonly< ApFieldRadioProps> & Readonly<{
            "onUpdate:value"?: ((...args: any[]) => any) | undefined;
        }>, {
            request: () => void;
        }, {}, {}, {}, {
            mode: FieldMode;
            vertical: boolean;
            disabled: boolean;
            emptyText: string;
        }> | null;
    };
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<ApFormItemRadioProps, {
    request: () => void | undefined;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ApFormItemRadioProps> & Readonly<{}>, {
    disabled: boolean;
    required: boolean;
    colon: boolean;
    hasFeedback: boolean;
    autoLink: boolean;
    validateFirst: boolean;
    field: Omit< ApFieldRadioProps, "value" | "onUpdate:value">;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
    radioRef: CreateComponentPublicInstanceWithMixins<Readonly< ApFieldRadioProps> & Readonly<{
        "onUpdate:value"?: ((...args: any[]) => any) | undefined;
    }>, {
        request: () => void;
    }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
        "update:value": (...args: any[]) => void;
    }, PublicProps, {
        mode: FieldMode;
        vertical: boolean;
        disabled: boolean;
        emptyText: string;
    }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
        radioGroupRef: CreateComponentPublicInstanceWithMixins<Readonly< ExtractPropTypes<{
            prefixCls: StringConstructor;
            value: VueTypeValidableDef<any>;
            size: {
                type: PropType<"default" | "small" | "large">;
                default: "default" | "small" | "large";
            };
            options: {
                type: PropType<(string | number | RadioGroupChildOption)[]>;
                default: (string | number | RadioGroupChildOption)[];
            };
            disabled: {
                type: BooleanConstructor;
                default: boolean;
            };
            name: StringConstructor;
            buttonStyle: {
                type: PropType<RadioGroupButtonStyle>;
                default: RadioGroupButtonStyle;
            };
            id: StringConstructor;
            block: BooleanConstructor;
            optionType: {
                type: PropType<RadioGroupOptionType>;
                default: RadioGroupOptionType;
            };
            onChange: {
                type: PropType<(e: RadioChangeEvent) => void>;
                default: (e: RadioChangeEvent) => void;
            };
            'onUpdate:value': {
                type: PropType<(val: any) => void>;
                default: (val: any) => void;
            };
            vertical: {
                type: BooleanConstructor;
                default: boolean;
            };
        }>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
            size: "default" | "small" | "large";
            vertical: boolean;
            onChange: (e: RadioChangeEvent) => void;
            block: boolean;
            disabled: boolean;
            'onUpdate:value': (val: any) => void;
            options: (string | number | RadioGroupChildOption)[];
            buttonStyle: RadioGroupButtonStyle;
            optionType: RadioGroupOptionType;
        }, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
            P: {};
            B: {};
            D: {};
            C: {};
            M: {};
            Defaults: {};
        }, Readonly< ExtractPropTypes<{
            prefixCls: StringConstructor;
            value: VueTypeValidableDef<any>;
            size: {
                type: PropType<"default" | "small" | "large">;
                default: "default" | "small" | "large";
            };
            options: {
                type: PropType<(string | number | RadioGroupChildOption)[]>;
                default: (string | number | RadioGroupChildOption)[];
            };
            disabled: {
                type: BooleanConstructor;
                default: boolean;
            };
            name: StringConstructor;
            buttonStyle: {
                type: PropType<RadioGroupButtonStyle>;
                default: RadioGroupButtonStyle;
            };
            id: StringConstructor;
            block: BooleanConstructor;
            optionType: {
                type: PropType<RadioGroupOptionType>;
                default: RadioGroupOptionType;
            };
            onChange: {
                type: PropType<(e: RadioChangeEvent) => void>;
                default: (e: RadioChangeEvent) => void;
            };
            'onUpdate:value': {
                type: PropType<(val: any) => void>;
                default: (val: any) => void;
            };
            vertical: {
                type: BooleanConstructor;
                default: boolean;
            };
        }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
            size: "default" | "small" | "large";
            vertical: boolean;
            onChange: (e: RadioChangeEvent) => void;
            block: boolean;
            disabled: boolean;
            'onUpdate:value': (val: any) => void;
            options: (string | number | RadioGroupChildOption)[];
            buttonStyle: RadioGroupButtonStyle;
            optionType: RadioGroupOptionType;
        }> | null;
    }, any, ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly< ApFieldRadioProps> & Readonly<{
        "onUpdate:value"?: ((...args: any[]) => any) | undefined;
    }>, {
        request: () => void;
    }, {}, {}, {}, {
        mode: FieldMode;
        vertical: boolean;
        disabled: boolean;
        emptyText: string;
    }> | null;
}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
