import { Ref } from 'vue';
export type ValidatableComponent = {
    validateOnSubmit: () => Promise<boolean> | boolean;
    clearValidation?: () => void;
    reset?: () => void;
    $props?: {
        label?: string;
    };
};
/**
 * 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<boolean>;
    validatableComponents: Ref<{
        validateOnSubmit: () => Promise<boolean> | boolean;
        clearValidation?: (() => void) | undefined;
        reset?: (() => void) | undefined;
        $props?: {
            label?: string | undefined;
        } | undefined;
    }[], ValidatableComponent[] | {
        validateOnSubmit: () => Promise<boolean> | boolean;
        clearValidation?: (() => void) | undefined;
        reset?: (() => void) | undefined;
        $props?: {
            label?: string | undefined;
        } | undefined;
    }[]>;
    clearAll: () => void;
    resetAll: () => void;
};
/**
 * 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;
};
