import { ComputedRef, Ref } from 'vue'; import { FieldValidationProps, ValidationRule, VuetifyValidationRule } from '../../../../composables/unifyValidation/useValidation'; export interface SyRadioGroupValidationProps extends FieldValidationProps { modelValue?: PropertyKey | null; required?: boolean; readonly?: boolean; disabled?: boolean; customRules?: ValidationRule[]; customWarningRules?: ValidationRule[]; customSuccessRules?: ValidationRule[]; isValidateOnBlur?: boolean; showSuccessMessages?: boolean; useVuetifyValidation?: boolean; rules?: VuetifyValidationRule[]; errorMessages?: string[] | null; warningMessages?: string[] | null; successMessages?: string[] | null; hasError?: boolean; hasWarning?: boolean; hasSuccess?: boolean; maxErrors?: number; disableErrorHandling?: boolean; fieldIdentifier?: string; } export interface UseSyRadioGroupValidationReturn { validate: () => Promise; validateOnSubmit: () => Promise; errors: Ref; warnings: Ref; successes: Ref; hasError: ComputedRef; hasWarning: ComputedRef; hasSuccess: ComputedRef; defaultRules: ComputedRef; focused: Ref; } /** * Composable pour gérer la validation du composant SyRadioGroup * * Ce composable encapsule toute la logique de validation spécifique aux groupes de radios : * - Validation required avec message personnalisé * - Validation immédiate à la sélection (isValidateOnBlur = false par défaut) * - Support des customRules, customWarningRules, customSuccessRules * - Désactivation automatique des messages de succès en mode Vuetify * - Intégration avec useValidation du design system * * @example * const { validate, errors, hasError, defaultRules } = useSyRadioGroupValidation(props, model) */ export declare function useSyRadioGroupValidation(props: SyRadioGroupValidationProps, model: Ref, focused?: Ref): UseSyRadioGroupValidationReturn;