import BaseFoundation, { DefaultAdapter } from '../base/foundation'; import { WeekStartNumber } from './_utils/getMonthTable'; export interface MonthFoundationProps { forwardRef: any; month: Date; selected: Set; rangeStart: string; rangeEnd: string; offsetRangeStart: string; offsetRangeEnd: string; onDayClick: (day: MonthDayInfo) => void; onDayHover: (day: MonthDayInfo) => void; weekStartsOn: WeekStartNumber; disabledDate: (day: Date, options?: { rangeStart: string; rangeEnd: string; }) => boolean; weeksRowNum: number; onWeeksRowNumChange: (weeksRowNum: number) => void; renderDate: () => void; renderFullDate: () => void; hoverDay: string; startDateOffset: () => void; endDateOffset: () => void; rangeInputFocus: string | boolean; focusRecordsRef: any; locale: any; localeCode: string; multiple: boolean; } export type MonthDayInfo = { dayNumber: number; dayNumberFull?: string; fullDate: string; } | { dayNumber: string; dayNumberFull?: string; fullDate: string; }; export interface MonthInfo { weeks: Array; monthText: string; month?: Date; } export interface MonthFoundationState { weekdays: string[]; month: MonthInfo; todayText: string; weeksRowNum: number; } export interface MonthTable { monthText: string; weeks: unknown; month: unknown; } export interface MonthAdapter extends DefaultAdapter { updateToday: (todayText: string) => void; setWeekDays: (weekdays: string[]) => void; setWeeksRowNum: (weeksRowNum: number, callback?: () => void) => void; updateMonthTable: (month: MonthInfo) => void; notifyDayClick: MonthFoundationProps['onDayClick']; notifyDayHover: MonthFoundationProps['onDayHover']; notifyWeeksRowNumChange: MonthFoundationProps['onWeeksRowNumChange']; } export default class CalendarMonthFoundation extends BaseFoundation { constructor(adapter: MonthAdapter); init(): void; _getToday(): void; getMonthTable(): void; updateWeekDays(): void; destroy(): void; handleClick(day: MonthDayInfo): void; handleHover(day?: MonthDayInfo): void; }