import { VegaCalendar } from '../../../vega-calendar';
import { CalendarDate } from '../../../../../helpers/calendar';
import { VegaCalendarDateBlockRenderer } from '../../common/renderers/vega-calendar-date-block-renderer.abstract';
/** The code provided is defining a TypeScript class called `VegaCalendarMonthViewRenderer` that extends `VegaSlimmer`. This class is responsible for rendering a month view of a calendar component. */
export declare class VegaCalendarMonthViewRenderer extends VegaCalendarDateBlockRenderer {
  protected viewMode: VegaCalendar['viewMode'];
  protected calendarView: VegaCalendar['calendarView'];
  protected currentPeriod: VegaCalendar['currentPeriod'];
  protected currentPeriodController: VegaCalendar['currentPeriodController'];
  protected monthEventRenderer: VegaCalendar['monthEventRenderer'];
  protected translationSlimmer: VegaCalendar['translationSlimmer'];
  protected isDateDisabled: VegaCalendar['isDateDisabled'];
  protected showSwitchView: VegaCalendar['showSwitchView'];
  protected timezone: VegaCalendar['timezone'];
  protected host: VegaCalendar['host'];
  protected dayViewFocusSlimmer: VegaCalendar['dayViewFocusSlimmer'];
  /**
   * the HTML elements that represent the month view of a calendar component.
   *
   * @returns {HTMLElement} the month view calendar content
   */
  render(): HTMLElement;
  /**
   * emit vega click event when click the date block
   *
   * @param {MouseEvent} e the mouse event object
   * @param {CalendarDate} calendarDate the calendar date object
   */
  protected handleDateBlockClick(e: MouseEvent, calendarDate: CalendarDate): void;
  /**
   * generating the HTML elements that represent the content of the month view in a calendar component
   *
   * @returns {HTMLElement[]} month view content and event content
   */
  private renderMonthViewContent;
  /**
   * It takes a `CalendarDate` object as a parameter and returns an HTML element representing a date block in the calendar view.
   *
   * @param {CalendarDate} item the day object
   * @returns {HTMLElement} the date block element
   */
  private renderDateBlock;
  /**
   * switch to current date day view
   *
   * @param {CalendarDate} calendarDate the calendar date object
   * @param {MouseEvent} e the mouse event object
   */
  private goToCurrentDayView;
  /**
   * Handler for clicking on the date label.
   *
   * @param {MouseEvent} e - the mouse event object
   * @param {CalendarDate} calendarDate - the calendar date object
   */
  private handleDateLabelClick;
  /**
   * determine if the clicked element is blank area
   *
   * @param {HTMLElement} element the target element
   * @returns {boolean} true or false
   */
  private isMonthBlockBlankArea;
}
