import ModulDate from './../../../../utils/modul-date/modul-date'; import CalendarState, { Calendar, CalendarCurrentState, CalendarEvents, CalendarType, DaySelectCallBack, DayState, MonthState, YearState } from './calendar-state'; export declare const MAX_DATE_OFFSET: number; export declare const MIN_DATE_OFFSET: number; export declare const FIRST_MONTH_INDEX: number; export declare const LAST_MONTH_INDEX: number; export declare const LAST_DAY_OF_WEEK_INDEX: number; export declare const FIRST_DAY_OF_MONTH_INDEX: number; export declare type SingleDate = string; export interface RangeDate { begin?: string; end?: string; } export default abstract class AbstractCalendarState implements CalendarState { protected now: ModulDate; protected currentlyDisplayedDate: ModulDate; protected currentMinDate: ModulDate; protected currentMaxDate: ModulDate; protected minDate: string; protected maxDate: string; protected daySelectCallback: Function; private calendar; private events; private lastSelectedDate; constructor(value?: SingleDate | RangeDate, minDate?: string, maxDate?: string); abstract updateState(value: SingleDate | RangeDate, minDate?: string, maxDate?: string): void; buildCurrentCalendar(): CalendarCurrentState; onDateSelect(callback: DaySelectCallBack): void; protected abstract initCurrentValue(value?: SingleDate | RangeDate): void; protected abstract initCurrentlyDisplayedDate(): void; protected emitUpdate(data: SingleDate | RangeDate): void; /** * Updates the date used to display the calendar. If it's lower than the minimum date authorized, it's set to the minimum. * If it's higher than the maximum date authorized, it's set to the maximum * * @param year new value * @param month new value * @param day new value */ protected updateCurrentlyDisplayedDate(year: number, month: number, day: number): void; protected selectDay(selectedDay: DayState): void; protected nextMonth(): void; protected previousMonth(): void; protected nextYear(): void; protected previousYear(): void; protected selectYear(year: YearState): void; protected selectYearMonth(year: YearState, month: MonthState): void; protected selectMonth(month: MonthState): void; protected initDates(value?: SingleDate | RangeDate, minDate?: string, maxDate?: string): void; protected assembleCalendar(): Calendar; protected assembleCalendarEvents(): CalendarEvents; protected abstract assembleValue(): SingleDate | RangeDate | undefined; protected abstract calendarType(): CalendarType; protected overrideCalendarEvents(events: CalendarEvents): CalendarEvents; protected selectedDayToDate(selectedDay: DayState): ModulDate; protected isDayDisabled(date: ModulDate): boolean; protected isDayToday(date: ModulDate): boolean; protected isInPreviousMonth(date: ModulDate): boolean; protected isInNextMonth(date: ModulDate): boolean; protected isDaySelected(_date: ModulDate): boolean; protected isHighlighted(_date: ModulDate): boolean; protected isSelectionStart(_date: ModulDate): boolean; protected isSelectionEnd(_date: ModulDate): boolean; protected hasFocus(date: ModulDate): boolean; protected currentlyDisplayedYear(): number; protected currentlyDisplayedMonth(): number; protected currentlyDisplayedDay(): number; private years; private months; private yearsMonths; private daysOfMonth; private initMaxDate; private initMinDate; private buildDaysList; private calculateStartDate; private calculateEndDate; private weekdayIndexOfFirstDayOfMonth; private weekdayIndexOfLastDayOfMonth; private daysInMonth; private calculateYearOffset; } //# sourceMappingURL=abstract-calendar-state.d.ts.map