import { VegaSlimmer } from '../../../../../vega-slimmer/vega-slimmer-core';
import { VegaCalendarViewModeType } from '../../../types';
import { CalendarDate } from '../../../../../helpers/calendar';
import { VegaCalendar } from '../../../vega-calendar';
/**
 * Render a red line that representing the current time
 */
export declare class VegaCalendarTimeMarkerRenderer extends VegaSlimmer {
  protected viewMode: VegaCalendar['viewMode'];
  protected viewRenderer: VegaCalendar['viewRenderer'];
  protected timezone: VegaCalendar['timezone'];
  private timeMarkerRef;
  private timeMarkerPositionTimer;
  /**
   * takes an array of `CalendarDate` objects as input and returns an HTML element
   *
   * @param {CalendarDate[]} source
   * @returns {HTMLElement} the html element
   */
  render(source: CalendarDate[]): HTMLElement;
  /**
   * scroll to current time line block if change view mode to week or day
   *
   * @param {VegaCalendarViewModeType} viewMode the view mode
   */
  protected updateTimeLine(viewMode: VegaCalendarViewModeType): void;
  /**
   * remove setInterval when component destroy
   */
  protected clearTimer(): void;
  /**
   * Add the time mark position update logic if the component add back to page
   */
  protected updateTimeLineIfComponentAddBack(): void;
  /**
   * Should display the current time block in the view if the default view mode is not month
   */
  protected displayCurrentTimeBlockByDefault(): void;
  /**
   * The function `getTimeMarkerPosition` calculates the position of the current time marker as a percentage of the day.
   *
   * @returns {string} a string representing the current time marker position as a percentage of the day.
   */
  private getTimeMarkerPosition;
  /**
   * Update the time marker position with the time
   *
   * @param {VegaCalendarViewModeType} viewMode view mode value
   */
  private syncTimeMarkerPosition;
  /**
   * scroll the time line in to current view
   *
   * @param {VegaCalendarViewModeType} viewMode view mode value
   */
  private scrollToTargetTimeBlock;
  /**
   * Get the center position of the display area.
   * <div class='calendar-view'>
   *   <div class='calendar-view-title-container'></div>
   *   <div class='display-view'>
   *   <div class='empty-space'></div>
   * 		<div class='time-marker'></div>
   *   </div>
   * </div>
   *
   * @returns {number}
   */
  private getViewCenterPosition;
}
