import { RadioGroupContext, FormItemContext } from 'element-plus';
import { LooseRequired } from '@vue/shared';
import { EpPropFinalized, EpPropMergeType } from 'element-plus/es/utils';
import { RenderTypes, OptionsRow, RecordType } from 'plus-pro-components';
import { DefineComponent, PropType, Ref, CreateComponentPublicInstance, ExtractPropTypes, ComputedRef, WritableComputedRef, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, PublicProps } from 'vue';
import { PlusRadioProps } from './src/index.vue';

export type { PlusRadioProps };
export declare const PlusRadio: DefineComponent<{
    fieldSlots: {
        type: PropType<{
            [slotName: string]: (data?: any) => RenderTypes;
        }>;
        default: undefined;
    };
    fieldChildrenSlot: {
        type: PropType<(option?: OptionsRow<undefined> | undefined) => RenderTypes>;
        default: undefined;
    };
    modelValue: {
        type: PropType<string | number | boolean>;
        default: string;
    };
    options: {
        type: PropType< OptionsRow<RecordType>[]>;
        required: true;
        default: () => never[];
    };
    isCancel: {
        type: PropType<boolean>;
        default: boolean;
    };
}, {
    radioInstance: Ref< CreateComponentPublicInstance<Readonly< ExtractPropTypes<{
        readonly border: BooleanConstructor;
        readonly modelValue: EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
        readonly size: {
            readonly type: PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        readonly disabled: BooleanConstructor;
        readonly label: EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
        readonly value: EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
        readonly name: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
    }>> & {
        onChange?: ((val: string | number | boolean | undefined) => any) | undefined;
        "onUpdate:modelValue"?: ((val: string | number | boolean | undefined) => any) | undefined;
    }, {
        props: Readonly< LooseRequired<Readonly< ExtractPropTypes<{
            readonly border: BooleanConstructor;
            readonly modelValue: EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
            readonly size: {
                readonly type: PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            };
            readonly disabled: BooleanConstructor;
            readonly label: EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
            readonly value: EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
            readonly name: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
        }>> & {
            onChange?: ((val: string | number | boolean | undefined) => any) | undefined;
            "onUpdate:modelValue"?: ((val: string | number | boolean | undefined) => any) | undefined;
        }>>;
        emit: ((event: "update:modelValue", val: string | number | boolean | undefined) => void) & ((event: "change", val: string | number | boolean | undefined) => void);
        ns: {
            namespace: ComputedRef<string>;
            b: (blockSuffix?: string | undefined) => string;
            e: (element?: string | undefined) => string;
            m: (modifier?: string | undefined) => string;
            be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
            em: (element?: string | undefined, modifier?: string | undefined) => string;
            bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
            bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
            is: {
                (name: string, state: boolean | undefined): string;
                (name: string): string;
            };
            cssVar: (object: Record<string, string>) => Record<string, string>;
            cssVarName: (name: string) => string;
            cssVarBlock: (object: Record<string, string>) => Record<string, string>;
            cssVarBlockName: (name: string) => string;
        };
        radioRef: Ref<HTMLInputElement | undefined>;
        radioGroup: RadioGroupContext | undefined;
        focus: Ref<boolean>;
        size: ComputedRef<"" | "default" | "small" | "large">;
        disabled: ComputedRef<boolean>;
        modelValue: WritableComputedRef< EpPropMergeType<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown> | undefined>;
        actualValue: ComputedRef< EpPropMergeType<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown> | undefined>;
        handleChange: () => void;
    }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
        "update:modelValue": (val: string | number | boolean | undefined) => boolean;
        change: (val: string | number | boolean | undefined) => boolean;
    }, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly< ExtractPropTypes<{
        readonly border: BooleanConstructor;
        readonly modelValue: EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
        readonly size: {
            readonly type: PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        readonly disabled: BooleanConstructor;
        readonly label: EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
        readonly value: EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
        readonly name: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
    }>> & {
        onChange?: ((val: string | number | boolean | undefined) => any) | undefined;
        "onUpdate:modelValue"?: ((val: string | number | boolean | undefined) => any) | undefined;
    }, {
        readonly value: EpPropMergeType<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown>;
        readonly modelValue: EpPropMergeType<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown>;
        readonly label: EpPropMergeType<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown>;
        readonly disabled: boolean;
        readonly name: string;
        readonly border: boolean;
    }, true, {}, {}, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly< ExtractPropTypes<{
        readonly border: BooleanConstructor;
        readonly modelValue: EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
        readonly size: {
            readonly type: PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        readonly disabled: BooleanConstructor;
        readonly label: EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
        readonly value: EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
        readonly name: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
    }>> & {
        onChange?: ((val: string | number | boolean | undefined) => any) | undefined;
        "onUpdate:modelValue"?: ((val: string | number | boolean | undefined) => any) | undefined;
    }, {
        props: Readonly< LooseRequired<Readonly< ExtractPropTypes<{
            readonly border: BooleanConstructor;
            readonly modelValue: EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
            readonly size: {
                readonly type: PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            };
            readonly disabled: BooleanConstructor;
            readonly label: EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
            readonly value: EpPropFinalized<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown, undefined, boolean>;
            readonly name: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
        }>> & {
            onChange?: ((val: string | number | boolean | undefined) => any) | undefined;
            "onUpdate:modelValue"?: ((val: string | number | boolean | undefined) => any) | undefined;
        }>>;
        emit: ((event: "update:modelValue", val: string | number | boolean | undefined) => void) & ((event: "change", val: string | number | boolean | undefined) => void);
        ns: {
            namespace: ComputedRef<string>;
            b: (blockSuffix?: string | undefined) => string;
            e: (element?: string | undefined) => string;
            m: (modifier?: string | undefined) => string;
            be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
            em: (element?: string | undefined, modifier?: string | undefined) => string;
            bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
            bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
            is: {
                (name: string, state: boolean | undefined): string;
                (name: string): string;
            };
            cssVar: (object: Record<string, string>) => Record<string, string>;
            cssVarName: (name: string) => string;
            cssVarBlock: (object: Record<string, string>) => Record<string, string>;
            cssVarBlockName: (name: string) => string;
        };
        radioRef: Ref<HTMLInputElement | undefined>;
        radioGroup: RadioGroupContext | undefined;
        focus: Ref<boolean>;
        size: ComputedRef<"" | "default" | "small" | "large">;
        disabled: ComputedRef<boolean>;
        modelValue: WritableComputedRef< EpPropMergeType<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown> | undefined>;
        actualValue: ComputedRef< EpPropMergeType<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown> | undefined>;
        handleChange: () => void;
    }, {}, {}, {}, {
        readonly value: EpPropMergeType<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown>;
        readonly modelValue: EpPropMergeType<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown>;
        readonly label: EpPropMergeType<(NumberConstructor | BooleanConstructor | StringConstructor)[], unknown, unknown>;
        readonly disabled: boolean;
        readonly name: string;
        readonly border: boolean;
    }> | null | undefined>;
    radioGroupInstance: Ref< CreateComponentPublicInstance<Readonly< ExtractPropTypes<{
        readonly id: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
        readonly size: {
            readonly type: PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        readonly disabled: BooleanConstructor;
        readonly modelValue: EpPropFinalized<readonly [StringConstructor, NumberConstructor, BooleanConstructor], unknown, unknown, undefined, boolean>;
        readonly fill: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
        readonly label: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
        readonly textColor: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
        readonly name: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
        readonly validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
    }>> & {
        onChange?: ((val: string | number | boolean | undefined) => any) | undefined;
        "onUpdate:modelValue"?: ((val: string | number | boolean | undefined) => any) | undefined;
    }, {
        props: Readonly< LooseRequired<Readonly< ExtractPropTypes<{
            readonly id: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
            readonly size: {
                readonly type: PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            };
            readonly disabled: BooleanConstructor;
            readonly modelValue: EpPropFinalized<readonly [StringConstructor, NumberConstructor, BooleanConstructor], unknown, unknown, undefined, boolean>;
            readonly fill: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
            readonly label: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
            readonly textColor: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
            readonly name: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
            readonly validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
        }>> & {
            onChange?: ((val: string | number | boolean | undefined) => any) | undefined;
            "onUpdate:modelValue"?: ((val: string | number | boolean | undefined) => any) | undefined;
        }>>;
        emit: ((event: "update:modelValue", val: string | number | boolean | undefined) => void) & ((event: "change", val: string | number | boolean | undefined) => void);
        ns: {
            namespace: ComputedRef<string>;
            b: (blockSuffix?: string | undefined) => string;
            e: (element?: string | undefined) => string;
            m: (modifier?: string | undefined) => string;
            be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
            em: (element?: string | undefined, modifier?: string | undefined) => string;
            bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
            bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
            is: {
                (name: string, state: boolean | undefined): string;
                (name: string): string;
            };
            cssVar: (object: Record<string, string>) => Record<string, string>;
            cssVarName: (name: string) => string;
            cssVarBlock: (object: Record<string, string>) => Record<string, string>;
            cssVarBlockName: (name: string) => string;
        };
        radioId: Ref<string>;
        radioGroupRef: Ref<HTMLDivElement | undefined>;
        formItem: FormItemContext | undefined;
        groupId: Ref<string | undefined>;
        isLabeledByFormItem: ComputedRef<boolean>;
        changeEvent: (value: EpPropMergeType<readonly [StringConstructor, NumberConstructor, BooleanConstructor], unknown, unknown> | undefined) => void;
        name: ComputedRef<string>;
    }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
        "update:modelValue": (val: string | number | boolean | undefined) => boolean;
        change: (val: string | number | boolean | undefined) => boolean;
    }, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly< ExtractPropTypes<{
        readonly id: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
        readonly size: {
            readonly type: PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        readonly disabled: BooleanConstructor;
        readonly modelValue: EpPropFinalized<readonly [StringConstructor, NumberConstructor, BooleanConstructor], unknown, unknown, undefined, boolean>;
        readonly fill: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
        readonly label: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
        readonly textColor: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
        readonly name: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
        readonly validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
    }>> & {
        onChange?: ((val: string | number | boolean | undefined) => any) | undefined;
        "onUpdate:modelValue"?: ((val: string | number | boolean | undefined) => any) | undefined;
    }, {
        readonly fill: string;
        readonly modelValue: EpPropMergeType<readonly [StringConstructor, NumberConstructor, BooleanConstructor], unknown, unknown>;
        readonly label: string;
        readonly id: string;
        readonly disabled: boolean;
        readonly name: string;
        readonly validateEvent: EpPropMergeType<BooleanConstructor, unknown, unknown>;
        readonly textColor: string;
    }, true, {}, {}, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly< ExtractPropTypes<{
        readonly id: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
        readonly size: {
            readonly type: PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        readonly disabled: BooleanConstructor;
        readonly modelValue: EpPropFinalized<readonly [StringConstructor, NumberConstructor, BooleanConstructor], unknown, unknown, undefined, boolean>;
        readonly fill: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
        readonly label: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
        readonly textColor: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
        readonly name: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
        readonly validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
    }>> & {
        onChange?: ((val: string | number | boolean | undefined) => any) | undefined;
        "onUpdate:modelValue"?: ((val: string | number | boolean | undefined) => any) | undefined;
    }, {
        props: Readonly< LooseRequired<Readonly< ExtractPropTypes<{
            readonly id: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
            readonly size: {
                readonly type: PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
                readonly required: false;
                readonly validator: ((val: unknown) => boolean) | undefined;
                __epPropKey: true;
            };
            readonly disabled: BooleanConstructor;
            readonly modelValue: EpPropFinalized<readonly [StringConstructor, NumberConstructor, BooleanConstructor], unknown, unknown, undefined, boolean>;
            readonly fill: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
            readonly label: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
            readonly textColor: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
            readonly name: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
            readonly validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
        }>> & {
            onChange?: ((val: string | number | boolean | undefined) => any) | undefined;
            "onUpdate:modelValue"?: ((val: string | number | boolean | undefined) => any) | undefined;
        }>>;
        emit: ((event: "update:modelValue", val: string | number | boolean | undefined) => void) & ((event: "change", val: string | number | boolean | undefined) => void);
        ns: {
            namespace: ComputedRef<string>;
            b: (blockSuffix?: string | undefined) => string;
            e: (element?: string | undefined) => string;
            m: (modifier?: string | undefined) => string;
            be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
            em: (element?: string | undefined, modifier?: string | undefined) => string;
            bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
            bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
            is: {
                (name: string, state: boolean | undefined): string;
                (name: string): string;
            };
            cssVar: (object: Record<string, string>) => Record<string, string>;
            cssVarName: (name: string) => string;
            cssVarBlock: (object: Record<string, string>) => Record<string, string>;
            cssVarBlockName: (name: string) => string;
        };
        radioId: Ref<string>;
        radioGroupRef: Ref<HTMLDivElement | undefined>;
        formItem: FormItemContext | undefined;
        groupId: Ref<string | undefined>;
        isLabeledByFormItem: ComputedRef<boolean>;
        changeEvent: (value: EpPropMergeType<readonly [StringConstructor, NumberConstructor, BooleanConstructor], unknown, unknown> | undefined) => void;
        name: ComputedRef<string>;
    }, {}, {}, {}, {
        readonly fill: string;
        readonly modelValue: EpPropMergeType<readonly [StringConstructor, NumberConstructor, BooleanConstructor], unknown, unknown>;
        readonly label: string;
        readonly id: string;
        readonly disabled: boolean;
        readonly name: string;
        readonly validateEvent: EpPropMergeType<BooleanConstructor, unknown, unknown>;
        readonly textColor: string;
    }> | null | undefined>;
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    change: (value: string | number | boolean) => void;
    "update:modelValue": (value: string | number | boolean) => void;
}, string, PublicProps, Readonly< ExtractPropTypes<{
    fieldSlots: {
        type: PropType<{
            [slotName: string]: (data?: any) => RenderTypes;
        }>;
        default: undefined;
    };
    fieldChildrenSlot: {
        type: PropType<(option?: OptionsRow<undefined> | undefined) => RenderTypes>;
        default: undefined;
    };
    modelValue: {
        type: PropType<string | number | boolean>;
        default: string;
    };
    options: {
        type: PropType< OptionsRow<RecordType>[]>;
        required: true;
        default: () => never[];
    };
    isCancel: {
        type: PropType<boolean>;
        default: boolean;
    };
}>> & {
    onChange?: ((value: string | number | boolean) => any) | undefined;
    "onUpdate:modelValue"?: ((value: string | number | boolean) => any) | undefined;
}, {
    fieldSlots: {
        [slotName: string]: (data?: any) => RenderTypes;
    };
    fieldChildrenSlot: (option?: OptionsRow<undefined> | undefined) => RenderTypes;
    modelValue: string | number | boolean;
    options: OptionsRow<RecordType>[];
    isCancel: boolean;
}, {}>;
