import { SlideDirection } from './PickersSlideTransition'; import { MuiPickersAdapter } from '../internal/pickers/hooks/useUtils'; interface CalendarState { currentMonth: TDate; focusedDay: TDate | null; isMonthSwitchingAnimating: boolean; slideDirection: SlideDirection; } declare type ReducerAction = { type: TType; } & TAdditional; interface ChangeMonthPayload { direction: SlideDirection; newMonth: TDate; } export declare const createCalendarStateReducer: (reduceAnimations: boolean, disableSwitchToMonthOnDayFocus: boolean, utils: MuiPickersAdapter) => (state: CalendarState, action: { type: "finishMonthSwitchingAnimation"; } | ReducerAction<"changeMonth", ChangeMonthPayload> | ReducerAction<"changeFocusedDay", { focusedDay: TDate; }>) => CalendarState; declare type CalendarStateInput = Pick, 'date' | 'defaultCalendarMonth' | 'disableFuture' | 'disablePast' | 'minDate' | 'maxDate' | 'onMonthChange' | 'reduceAnimations' | 'shouldDisableDate'> & { disableSwitchToMonthOnDayFocus?: boolean; }; export declare function useCalendarState({ date, defaultCalendarMonth, disableFuture, disablePast, disableSwitchToMonthOnDayFocus, maxDate, minDate, onMonthChange, reduceAnimations, shouldDisableDate, }: CalendarStateInput): { calendarState: CalendarState; changeMonth: (newDate: TDate) => void; changeFocusedDay: (newFocusedDate: TDate) => void; isDateDisabled: (day: TDate | null) => boolean; onMonthSwitchingAnimationEnd: () => void; handleChangeMonth: (payload: ChangeMonthPayload) => void; }; export {};