import { DateTime } from 'luxon'; import { MaskedDateInputChange } from './MaskedDateInput'; export type DateFieldSingleStateChange = { date: DateTime | null; isInputValid: boolean; isInputEmpty: boolean; }; export type DateFieldSingleStateChangeHandler = (change: DateFieldSingleStateChange) => void; export type DateFieldSingleStateParam = { /** * The controlled value of the date field. */ valueProp?: DateTime | null; /** * The default (uncontrolled) value of the date field. */ defaultValueProp?: DateTime | null; /** * Callback for when the date changes. */ onChange: DateFieldSingleStateChangeHandler; }; export type DateFieldSingleState = { /** * The current value (DateTime) of the date field. */ value: DateTime | null; /** * Sets the value of the date field. */ setValue: (value: DateTime | null) => void; /** * Handles the change of the input field. */ handleInputChange: (change: MaskedDateInputChange) => void; /** * Handles the selection of a date in the calendar. */ handleCalendarSelection: (date: DateTime) => void; }; /** * This is a hook for keeping state in sync between a date input and calendar. */ export declare function useDateFieldSingleState({ valueProp, defaultValueProp, onChange, }: DateFieldSingleStateParam): DateFieldSingleState;