import { Ref } from 'vue'; import { ValidationResult } from '../../../composables/validation/useValidation'; import { DateModelValue } from '../../../composables/date/useDateInitializationDayjs'; export interface UseDateTextFieldManualValidationOptions { required: boolean; disableErrorHandling: boolean; customRules: any; customWarningRules: any; hasInteracted: Ref; errors: Ref; clearValidation: () => void; validateDateFormat: (dateStr: string) => { isValid: boolean; message: string; }; isDateComplete: (value: string) => boolean; parseDate: (dateStr: string, format: string) => Date | null; validateField: (value: unknown, rules?: any[], warningRules?: any[]) => Promise; } export interface UseDateTextFieldSubmitOptions { isValidating: Ref; hasInteracted: Ref; inputValue: Ref; runRules: (value: string) => Promise; } export interface UseDateTextFieldResetOptions { clearValidation: () => void; isFocused: Ref; hasInteracted: Ref; isDisabled: () => boolean; fieldKey: Ref; isFormatting: Ref; inputValue: Ref; selectedDates: Ref; resetState: () => void; emitModel: (value: DateModelValue) => void; } export interface UseDateTextFieldOptions { autoClamp: boolean; isRange: Ref; displayFormat: Ref; autoClampDate: (dateStr: string, format: string) => { clampedDate: string; adjusted: boolean; }; manualValidation: UseDateTextFieldManualValidationOptions; submit?: UseDateTextFieldSubmitOptions; reset?: UseDateTextFieldResetOptions; } /** * Composable de haut niveau pour la saisie de date dans un champ texte. * Pour l'instant il encapsule uniquement la logique d'autoClamp * afin de pouvoir être partagé entre les différents scénarios (single / range). */ export declare const useDateTextField: (options: UseDateTextFieldOptions) => { clampIfNeeded: (raw: string) => string; validateManualInput: (value: string) => boolean | Promise; validateOnSubmit: () => Promise; reset: () => void; }; export default useDateTextField;