import { type Ref } from "vue"; export type ChangePayload = { value: Date | null; event: any; }; export declare function useMaskedDateInput(args: { id: string; onChange: (p: ChangePayload) => void; onShowCalendar: (e: KeyboardEvent) => void; externalValue?: Ref; min?: Date | null | undefined; max?: Date | null | undefined; /** When true, empty/incomplete value is considered invalid after blur */ required?: boolean; /** Optional default date for this field (e.g., today). */ defaultValue?: Date | null; dateFormat?: string; debug?: boolean; }): { raw: Ref; cursorPos: Ref; debugEnabled: Ref; debugLines: import("vue").ComputedRef; placeholder: Ref; isValid: import("vue").ComputedRef; reason: Readonly>; validationMessage: import("vue").ComputedRef; digitsOnly: import("vue").ComputedRef; month: Readonly>; day: Readonly>; year: Readonly>; datePart: (pos: number) => "mm" | "dd" | "yyyy"; handleChange: (event: any) => void; handleKeyDown: (event: KeyboardEvent) => void; handleWheel: (event: WheelEvent) => void; handleKeyUp: (event: KeyboardEvent) => void; handleClick: (event: MouseEvent) => void; handleBlur: (event: FocusEvent) => void; initStyling: () => void; };