import { ComputedRef, InjectionKey } from 'vue';
/**
 * Vue inject key used by the page-level component (ShowPage / IndexPage
 * / FormPanel) to advertise which formId child renderers should bind
 * to. Avoids prop-drilling `formId` through every nested card/element.
 */
export declare const FORM_ID_KEY: InjectionKey<string>;
/**
 * Provide a formId to descendants. Call once at the page boundary.
 */
export declare function provideFormId(formId: string): void;
export interface UseFormDataBindings {
    /** Current value for `name` (undefined if unset). */
    value: ComputedRef<unknown>;
    /** Errors for `name`. Empty array if no errors. */
    errors: ComputedRef<string[]>;
    /** Whether the field has been touched since initialisation. */
    touched: ComputedRef<boolean>;
    /** Set the field's value. */
    setValue: (value: unknown) => void;
    /** Clear errors for this field. */
    clearError: () => void;
}
/**
 * Bind an element's `name` to the form-data store. Returns reactive
 * value, errors, and a setter. Renderers typically:
 *
 *   const { value, errors, setValue } = useFormData(props.element.name)
 *   <input :value="value" @input="setValue(($event.target as HTMLInputElement).value)" />
 */
export declare function useFormData(name: string, formIdOverride?: string): UseFormDataBindings;
//# sourceMappingURL=useFormData.d.ts.map