import { ListTable, EventTarget } from '@visactor/vtable'; import type { DateRecord } from './date-util'; import type { TYPES, ListTableConstructorOptions } from '@visactor/vtable'; import type { ICustomEvent, ICustomEventOptions, IEventData } from './custom/custom-handler'; import { CustomEventHandler } from './custom/custom-handler'; import type { CalendarEventHandlersEventArgumentMap, CalendarEventHandlersReturnMap, CalendarEventListener } from './event/type'; import type { EventListenerId } from '@visactor/vtable/es/ts-types'; export interface CalendarConstructorOptions { startDate?: Date; endDate?: Date; currentDate?: Date; rangeDays?: number; dayTitles?: [string, string, string, string, string, string, string]; tableOptions?: ListTableConstructorOptions; customEvents?: ICustomEvent[]; customEventOptions?: ICustomEventOptions; showTitle?: boolean; } export declare class Calendar extends EventTarget { container: HTMLElement; options: CalendarConstructorOptions; table: ListTable; startDate: Date; endDate: Date; currentDate: Date; rangeDays: number; tableStartDate: Date; records: DateRecord[]; currentMonthCellRanges: { range: TYPES.CellRange; }[]; currentMonth: number; currentYear: number; titleClickHandler: () => void; maxCol: number; minCol: number; customHandler: CustomEventHandler; showToday: boolean; constructor(container: HTMLElement, options?: CalendarConstructorOptions); _createTable(): void; getYearAndMonth(): any; jumpToDate(date: Date, animation?: boolean | TYPES.ITableAnimationOption): void; jumpToCurrentMonth(animation?: boolean | TYPES.ITableAnimationOption): void; _updateMonthCustomStyle(year: number, month: number): void; fireListeners(type: TYPE, event: CalendarEventHandlersEventArgumentMap[TYPE]): CalendarEventHandlersReturnMap[TYPE][]; on(type: TYPE, listener: CalendarEventListener): EventListenerId; _bindEvent(): void; release(): void; getCellLocation(date: Date): { row: number; col: number; }; getCellDate(col: number, row: number): Date; get selectedDate(): { date: Date; col: number; row: number; }[]; addCustomEvent(event: ICustomEvent): void; removeCustomEvent(id: string): void; updateCustomEvent(event: ICustomEvent): void; addCustomEvents(events: ICustomEvent[]): void; removeCustomEvents(ids: string[]): void; updateCustomEvents(events: ICustomEvent[]): void; getCellCustomEventByDate(date: Date): IEventData[]; getCellCustomEventByLocation(col: number, row: number): IEventData[]; }