import { type ComponentPublicInstance, type ComputedRef, type InjectionKey, type Ref } from 'vue'; import type { ChildrenTrackerInjectionKey } from '../../use'; import type { InputValidateState } from '../../input'; export declare const FormInputsKey: ChildrenTrackerInjectionKey; export declare const FormGroupInputsKey: ChildrenTrackerInjectionKey>; export interface FormFieldGroupProvide { /** Id of the header title, labelling the group and its toggle */ titleId: Ref; } export declare const FormFieldGroupKey: InjectionKey; export interface FormGroupField { /** Own id of the field, used by the label when set */ ownId: () => string | undefined; /** Whether the field can be named by the label of the group, false when it has a label of its own */ eligible: () => boolean; } export interface FormGroupFieldProvide { /** * Registers a field of the form group. The label of the group is linked to the first eligible field, if the group * has a label and is not a group or radiogroup. Returns the id of the group while the field is the linked one. */ register: (field: FormGroupField) => ComputedRef; unregister: (field: FormGroupField) => void; } export declare const FormGroupFieldKey: InjectionKey; /** * Registers the field in the surrounding form group, whose label is linked to the first eligible field. * The returned id is the own id of the field, or the one of the form group while the field is linked. */ export declare function useFormGroupFieldId(ownId: () => string | undefined, eligible?: () => boolean): { id: ComputedRef; linked: ComputedRef; }; //# sourceMappingURL=common.d.ts.map