import type { InjectionKey, PropType, Ref } from 'vue';
export interface SelectionGroupInstance {
    disabled: Ref<boolean>;
    inline: Ref<boolean>;
    id: Ref<string | undefined>;
    name: Ref<string | undefined>;
    modelValue: Ref<any>;
    multiple: Ref<boolean>;
    trueIcon: Ref<string | undefined>;
    falseIcon: Ref<string | undefined>;
    readonly: Ref<boolean>;
    type: Ref<string | undefined>;
}
export declare const SelectionGroupControlKey: InjectionKey<SelectionGroupInstance>;
export declare const makeSelectionGroupControlProps: <Defaults extends {
    id?: unknown;
    inline?: unknown;
    name?: unknown;
    falseIcon?: unknown;
    trueIcon?: unknown;
    multiple?: unknown;
    disabled?: unknown;
    readonly?: unknown;
    type?: unknown;
    modelValue?: unknown;
} = {}>(defaults?: Defaults | undefined) => {
    id: unknown extends Defaults["id"] ? StringConstructor : {
        type: PropType<unknown extends Defaults["id"] ? string : string | Defaults["id"]>;
        default: unknown extends Defaults["id"] ? string : string | Defaults["id"];
    };
    inline: unknown extends Defaults["inline"] ? BooleanConstructor : {
        type: PropType<unknown extends Defaults["inline"] ? boolean : boolean | Defaults["inline"]>;
        default: unknown extends Defaults["inline"] ? boolean : boolean | Defaults["inline"];
    };
    name: unknown extends Defaults["name"] ? StringConstructor : {
        type: PropType<unknown extends Defaults["name"] ? string : string | Defaults["name"]>;
        default: unknown extends Defaults["name"] ? string : string | Defaults["name"];
    };
    falseIcon: unknown extends Defaults["falseIcon"] ? StringConstructor : {
        type: PropType<unknown extends Defaults["falseIcon"] ? string : string | Defaults["falseIcon"]>;
        default: unknown extends Defaults["falseIcon"] ? string : string | Defaults["falseIcon"];
    };
    trueIcon: unknown extends Defaults["trueIcon"] ? StringConstructor : {
        type: PropType<unknown extends Defaults["trueIcon"] ? string : string | Defaults["trueIcon"]>;
        default: unknown extends Defaults["trueIcon"] ? string : string | Defaults["trueIcon"];
    };
    multiple: unknown extends Defaults["multiple"] ? {
        type: PropType<boolean | null>;
        default: null;
    } : Omit<{
        type: PropType<boolean | null>;
        default: null;
    }, "type" | "default"> & {
        type: PropType<unknown extends Defaults["multiple"] ? boolean | null : NonNullable<boolean | null> | Defaults["multiple"]>;
        default: unknown extends Defaults["multiple"] ? boolean | null : NonNullable<boolean | null> | Defaults["multiple"];
    };
    disabled: unknown extends Defaults["disabled"] ? BooleanConstructor : {
        type: PropType<unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]>;
        default: unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"];
    };
    readonly: unknown extends Defaults["readonly"] ? BooleanConstructor : {
        type: PropType<unknown extends Defaults["readonly"] ? boolean : boolean | Defaults["readonly"]>;
        default: unknown extends Defaults["readonly"] ? boolean : boolean | Defaults["readonly"];
    };
    type: unknown extends Defaults["type"] ? StringConstructor : {
        type: PropType<unknown extends Defaults["type"] ? string : string | Defaults["type"]>;
        default: unknown extends Defaults["type"] ? string : string | Defaults["type"];
    };
    modelValue: unknown extends Defaults["modelValue"] ? null : {
        type: PropType<unknown extends Defaults["modelValue"] ? any : any>;
        default: unknown extends Defaults["modelValue"] ? any : any;
    };
};
export declare const SelectionGroupControl: import("vue").DefineComponent<{
    id: StringConstructor;
    inline: BooleanConstructor;
    name: StringConstructor;
    falseIcon: StringConstructor;
    trueIcon: StringConstructor;
    multiple: {
        type: PropType<boolean | null>;
        default: null;
    };
    disabled: BooleanConstructor;
    readonly: BooleanConstructor;
    type: StringConstructor;
    modelValue: null;
}, {
    disabled: Ref<boolean>;
    inline: Ref<boolean>;
    modelValue: import("vue").WritableComputedRef<any>;
    multiple: import("vue").ComputedRef<boolean>;
    id: import("vue").ComputedRef<string>;
    name: Ref<string | undefined>;
    falseIcon: Ref<string | undefined>;
    trueIcon: Ref<string | undefined>;
    readonly: Ref<boolean>;
    type: Ref<string | undefined>;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    'update:modelValue': (_modelValue: any) => true;
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    id: StringConstructor;
    inline: BooleanConstructor;
    name: StringConstructor;
    falseIcon: StringConstructor;
    trueIcon: StringConstructor;
    multiple: {
        type: PropType<boolean | null>;
        default: null;
    };
    disabled: BooleanConstructor;
    readonly: BooleanConstructor;
    type: StringConstructor;
    modelValue: null;
}>> & {
    "onUpdate:modelValue"?: ((_modelValue: any) => any) | undefined;
}, {
    disabled: boolean;
    inline: boolean;
    multiple: boolean | null;
    readonly: boolean;
}>;
export declare function useSelectionGroupControl(): SelectionGroupInstance | null;
export type SelectionGroupControl = InstanceType<typeof SelectionGroupControl>;
