import { DateRange } from "../interfaces"; /** * CalendarStateManager - Centralized state management for the calendar controller * Manages all state variables with type-safe getters and setters */ export declare class CalendarStateManager { private _currentDate; private _selectedDate; private _selectedDateRange; private _focusedDate; private _minDate; private _maxDate; private _disabledDates; private _disabledDaysOfWeek; private _firstDayOfWeek; private _dateFormat; private _isRangeSelection; private _hideOtherMonthDays; private _locale; private _dateFormatOptions; private _yearRangeSize; private _currentYearRangeBase; get currentDate(): Date; set currentDate(value: Date); get selectedDate(): Date | null; set selectedDate(value: Date | null); get selectedDateRange(): DateRange; set selectedDateRange(value: DateRange); get focusedDate(): Date | null; set focusedDate(value: Date | null); get minDate(): Date | null; set minDate(value: Date | null); get maxDate(): Date | null; set maxDate(value: Date | null); get disabledDates(): Date[]; set disabledDates(value: Date[]); get disabledDaysOfWeek(): number[]; set disabledDaysOfWeek(value: number[]); get firstDayOfWeek(): number; set firstDayOfWeek(value: number); get dateFormat(): string | null; set dateFormat(value: string | null); get isRangeSelection(): boolean; set isRangeSelection(value: boolean); get hideOtherMonthDays(): boolean; set hideOtherMonthDays(value: boolean); get locale(): string; set locale(value: string); get dateFormatOptions(): Intl.DateTimeFormatOptions | null; set dateFormatOptions(value: Intl.DateTimeFormatOptions | null); get yearRangeSize(): number; set yearRangeSize(value: number); get currentYearRangeBase(): number; set currentYearRangeBase(value: number); /** * Get all state as a snapshot */ getStateSnapshot(): { currentDate: Date; selectedDate: Date | null; selectedDateRange: { startDate: Date | null; endDate: Date | null; }; focusedDate: Date | null; minDate: Date | null; maxDate: Date | null; disabledDates: Date[]; disabledDaysOfWeek: number[]; firstDayOfWeek: number; dateFormat: string | null; isRangeSelection: boolean; hideOtherMonthDays: boolean; locale: string; dateFormatOptions: Intl.DateTimeFormatOptions | null; yearRangeSize: number; currentYearRangeBase: number; }; }