import { ValidationRule as SyValidationRule } from '../validation/useValidation'; import { Ref } from 'vue'; import { ValidationRule as VuetifyValidationRule } from 'vuetify'; export type { VuetifyValidationRule }; export type { SyValidationRule as ValidationRule }; 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. */ 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; required: Ref; isValidateOnBlur: Ref; showSuccessMessages: Ref; disableErrorHandling: Ref; label: Ref; focused: Ref; errorMessages?: Ref; warningMessages?: Ref; successMessages?: Ref; hasErrorProp?: Ref; hasWarningProp?: Ref; hasSuccessProp?: Ref; } & ({ useVuetifyValidation: true; rules: Ref; customRules?: never; customWarningRules?: never; customSuccessRules?: never; maxErrors?: Ref; } | { useVuetifyValidation: false; customRules: Ref; customWarningRules?: Ref; customSuccessRules?: Ref; rules?: never; } | { useVuetifyValidation: Ref; customRules: Ref; customWarningRules?: Ref; customSuccessRules?: Ref; rules: Ref; maxErrors?: Ref; })): { errors: Ref; warnings: Ref; successes: Ref; hasError: import('vue').ComputedRef; hasWarning: import('vue').ComputedRef; hasSuccess: import('vue').ComputedRef; validate: () => Promise; clearValidation: () => void; } | { errors: import('vue').ComputedRef; warnings: import('vue').ComputedRef; successes: import('vue').ComputedRef; hasError: import('vue').ComputedRef; hasWarning: import('vue').ComputedRef; hasSuccess: import('vue').ComputedRef; validate: () => Promise; clearValidation: () => void; };