export type DateLike = null | string | Date; export interface CalendarOptions { yearRange?: string; showDateTimeInput?: boolean; timePickerIsUsed?: boolean; oneClickDateSelection?: boolean; minDate?: DateLike; maxDate?: DateLike; onDateChanged?: (date: Date, apply?: boolean) => void; onDrawDay?: (cell: HTMLElement, date: Date) => void; } export declare abstract class Calendar { private selectedDate; protected slot: HTMLElement; protected options: CalendarOptions; protected get cssPrefix(): string; constructor(slot: HTMLElement, options?: CalendarOptions); abstract render(): any; abstract refresh(): any; setDate(date: Date): void; getDate(): Date; protected dateChanged(apply?: boolean): void; } export declare function dateLikeToDate(input: DateLike): Date | null;