import { CalendarPeriod } from './calendar-period.abstract';
import { CalendarDate } from '../calendar-date';
/**
 * Period of month
 */
export declare class MonthPeriod extends CalendarPeriod {
  private static readonly DISPLAY_DATE_COUNT;
  protected readonly _type: string;
  protected _showWeekends: boolean;
  constructor(current?: CalendarDate, showWeekends?: boolean, timezone?: string);
  /**
   * The function `getMonthFirstDay` returns the first day of a given month in a calendar.
   *
   * @param {CalendarDate} [calendarDate] - The `calendarDate` parameter is an optional parameter of
   * type `CalendarDate`. It represents a specific date in the calendar. If a `calendarDate` is
   * provided, the function will use that date to determine the first day of the month. If no
   * `calendarDate` is provided, the function will use the current date considering timezone.
   * @param {string} [timezone] - The timezone to use when no calendarDate is provided
   * @returns {CalendarDate} A new `CalendarDate` object representing the first day of the month from the provided
   * `calendarDate` parameter or the current date if no parameter is provided.
   */
  static getMonthFirstDay(calendarDate?: CalendarDate, timezone?: string): CalendarDate;
  /**
   * Calculate the period start date and end date.
   *
   * @param {CalendarDate} date - The date to calculate the period from.
   */
  calculatePeriod(date: CalendarDate): void;
  /**
   * @inheritDoc
   */
  next(): this;
  /**
   * @inheritDoc
   */
  previous(): this;
  /**
   * @inheritDoc
   */
  protected createBy(current: CalendarDate): this;
}
