import { InjectionKey, Ref } from 'vue'; /** * Interface représentant un composant validable qui peut s'enregistrer auprès d'un formulaire parent. */ export type ValidatableComponent = { valide?: boolean | null; isPristine?: boolean; validateOnSubmit: () => Promise | boolean; clearValidation?: () => void; reset?: () => void; $props?: { label?: string; }; }; export declare const ValidatableComponentsKey: InjectionKey<{ register: (component: ValidatableComponent) => void; unregister: (component: ValidatableComponent) => void; clearAll: () => void; resetAll: () => void; components: Ref; }>; /** * Hook pour le formulaire parent qui fournit un registre pour les composants validables * @returns Fonctions pour gérer la validation des composants enfants */ export declare function useFormValidation(): { validateAll: () => Promise; clearAll: () => void; resetAll: () => void; customComponentsValide: import('vue').ComputedRef; hasDisplayedError: import('vue').ComputedRef; getFormValue: (vFormStatus: boolean | null | undefined, hasVuetifyFields?: boolean) => boolean | null; _getValidatableComponents: () => readonly ValidatableComponent[]; }; /** * Hook pour les composants enfants qui doivent s'enregistrer auprès du formulaire parent * @returns Fonction pour s'enregistrer et se désinscrire du formulaire parent */ export declare function useValidatableComponent(): { register: (component: ValidatableComponent) => void; unregister: (component: ValidatableComponent) => void; clearAll: () => void; resetAll: () => void; };