import { ValidationResult as LegacyValidationResult, ValidationRule as SyValidationRule } from '../validation/useValidation'; import { Ref } from 'vue'; import { ValidationRule as VuetifyValidationRule } from 'vuetify'; import { UseCustomValidationOptions } from './useCustomValidation'; export type { VuetifyValidationRule }; export type { SyValidationRule as ValidationRule }; export type { LegacyValidationResult as ValidationResult }; export interface FieldValidationProps { customRules?: SyValidationRule[]; customSuccessRules?: SyValidationRule[]; customWarningRules?: SyValidationRule[]; disableErrorHandling?: boolean; disabled?: boolean; errorMessages?: string[] | null; hasError?: boolean; hasSuccess?: boolean; hasWarning?: boolean; isValidateOnBlur?: boolean; label?: string; maxErrors?: number; modelValue?: unknown; readonly?: boolean; required?: boolean; rules?: VuetifyValidationRule[]; showSuccessMessages?: boolean; successMessages?: string[] | null; useVuetifyValidation?: boolean; warningMessages?: string[] | null; } /** * Point d'entrée de la validation pour les composants de champ. * Gère à la fois la validation native Vuetify (si useVuetifyValidation vaut true) * et la validation custom Synapse (si customRules/customWarningRules/customSuccessRules sont fournis). * customRules correspond aux règles d'erreur bloquantes. * errorMessages/warningMessages/successMessages sont des messages externes injectés par le parent * et ne déclenchent aucun calcul de validation. * Expose aussi une interface unifiée pour les erreurs, avertissements, succès et la validation à la demande. * Les options permettent aux champs composites de déléguer l'enregistrement Synapse * au formulaire à leurs enfants et d'orchestrer eux-mêmes la revalidation. */ export declare const validationPropsDefaults: { readonly: boolean; disabled: boolean; required: boolean; isValidateOnBlur: boolean; showSuccessMessages: boolean; disableErrorHandling: boolean; customRules: () => never[]; customWarningRules: () => never[]; customSuccessRules: () => never[]; errorMessages: null; warningMessages: null; successMessages: null; useVuetifyValidation: boolean; hasError: boolean; hasWarning: boolean; hasSuccess: boolean; maxErrors: number; }; export declare function useValidation(params: { modelValue: Ref; readonly: Ref; disabled: Ref; /** * Non lu par la validation : chaque composant transforme sa prop `required` en règle dans * `customRules`. En mode Vuetify, la règle doit être fournie dans `rules` (un avertissement * de développement le signale). */ required: Ref; isValidateOnBlur: Ref; showSuccessMessages: Ref; disableErrorHandling: Ref; label: Ref; focused: Ref; errorMessages?: Ref; warningMessages?: Ref; successMessages?: Ref; hasErrorProp?: Ref; hasWarningProp?: Ref; hasSuccessProp?: Ref; maxErrors?: Ref; } & ({ useVuetifyValidation: true; rules: Ref; customRules?: never; customWarningRules?: never; customSuccessRules?: never; } | { useVuetifyValidation: false; customRules: Ref; customWarningRules?: Ref; customSuccessRules?: Ref; rules?: never; } | { useVuetifyValidation: Ref; customRules: Ref; customWarningRules?: Ref; customSuccessRules?: Ref; rules: Ref; }), options?: Pick): { errors: import('vue').ComputedRef; warnings: import('vue').ComputedRef; successes: import('vue').ComputedRef; hasError: import('vue').ComputedRef; hasWarning: import('vue').ComputedRef; hasSuccess: import('vue').ComputedRef; state: import('vue').ComputedRef<"default" | "success" | "error" | "warning">; validate: () => Promise; clearValidation: () => void; };