import { RuleOptions } from '../rules/useFieldValidation'; type builtInDateRuleType = 'noWeekend' | 'noBeforeToday' | 'notAfterToday' | 'notBeforeDate' | 'notAfterDate' | 'dateExact' | 'isHolidayDay'; type BuiltInNumberRuleType = 'min' | 'max'; type BuiltInStringRuleType = 'minLength' | 'maxLength' | 'exactLength' | 'email' | 'matchPattern'; type BuiltInRuleGeneralType = 'required' | 'custom'; export type BuiltInRuleType = BuiltInRuleGeneralType | BuiltInNumberRuleType | BuiltInStringRuleType | builtInDateRuleType; interface CustomValidationRule { type: 'custom'; options: RuleOptions & { validate: NonNullable; }; } interface StandardValidationRule { type: BuiltInRuleType | ({} & string); options: RuleOptions; } export type ValidationRule = CustomValidationRule | StandardValidationRule; export interface ValidationOptions { showSuccessMessages?: boolean; disableErrorHandling?: boolean; fieldIdentifier?: string; } export interface ValidationState { errors: string[]; warnings: string[]; successes: string[]; } export interface ValidationResult { hasError: boolean; hasWarning: boolean; hasSuccess: boolean; state: ValidationState; } /** * Composable pour gérer la validation des champs de formulaire * @param options Options de configuration de la validation * @returns Un objet contenant les états et méthodes de validation */ export declare function useValidation(options?: ValidationOptions): { errors: import('vue').Ref; warnings: import('vue').Ref; successes: import('vue').Ref; displaySuccesses: import('vue').ComputedRef; hasError: import('vue').ComputedRef; hasWarning: import('vue').ComputedRef; hasSuccess: import('vue').ComputedRef; validateField: (value: unknown, rules?: ValidationRule[], warningRules?: ValidationRule[], successRules?: ValidationRule[]) => ValidationResult | Promise; validateOnSubmit: () => boolean; clearValidation: () => void; }; export {};