import { CalendarPeriod } from '../calendar-period/calendar-period.abstract';
import { CalendarView } from '../calendar-view';
/**
 * Calendar view generator abstract class.
 */
export declare abstract class CalendarViewGenerator {
  protected weekdays: number[];
  constructor();
  /**
   * Get weekday names.
   *
   * @returns {string[]} - The weekday strings
   */
  protected getWeekdayNames(): string[];
  /**
   * Generate calendar dates
   *
   * @param {CalendarPeriod} period - The calendar period
   * @returns {Date[]} - The date result
   */
  protected generateDates(period: CalendarPeriod): Date[];
  /**
   * Generate calendar head
   *
   * @returns {string[]} - The data of week head
   */
  protected generateWeekHead(): string[];
  /**
   * Generate calendar view data.
   *
   * @param {CalendarPeriod} calendarPeriod - The calendar period
   */
  abstract generate(calendarPeriod: CalendarPeriod): CalendarView;
}
