import { VegaSlimmer } from '../../../../../vega-slimmer/vega-slimmer-core';
import { CalendarEvent } from '../../../../../helpers/calendar/calendar-event';
import { Nullable } from '../../../../../types/general';
import { CalendarDate } from '../../../../../helpers/calendar';
/** Event preview popover controller */
export declare class VegaCalendarEventPreviewPopoverController extends VegaSlimmer {
  private singleEventPreviewContainerMap;
  private groupEventsPreviewContainerMap;
  /**
   * Set the event preview container for the given events
   *
   * @param {Nullable<CalendarEvent>[] | CalendarEvent} events - The calendar event(s)
   * @param {CalendarDate} viewDate - The current date
   * @param {HTMLElement} container - The HTML element to be used as the preview container
   */
  setEventPreviewContainerMap(events: Nullable<CalendarEvent>[] | CalendarEvent, viewDate: CalendarDate, container: HTMLElement): void;
  /**
   * Delete the event preview container for the given events
   *
   * @param {Nullable<CalendarEvent>[] | CalendarEvent} events - The calendar event(s)
   * @param {CalendarDate} viewDate - The current date
   */
  deleteEventPreviewContainer(events: Nullable<CalendarEvent>[] | CalendarEvent, viewDate: CalendarDate): void;
  /**
   * Get the event preview container for the given event
   *
   * @param {CalendarEvent} event - The calendar event
   * @param {CalendarDate} viewDate - The current date
   * @param {boolean} isGroup - Whether the event is part of a group
   * @returns {Nullable<HTMLElement>} - The HTML element used as the preview container, or null if not found
   */
  getEventPreviewContainer(event: CalendarEvent, viewDate: CalendarDate, isGroup: boolean): Nullable<HTMLElement>;
  /**
   *  clear all preview container maps when timezone changes
   *
   */
  protected clearAllPreviewContainers(): void;
  /**
   * Generate a unique key for the given events
   *
   * @param {Nullable<CalendarEvent>[] | CalendarEvent} events - The calendar event(s)
   * @param {CalendarDate} viewDate - The current date
   * @returns {string} - A unique string key representing the event(s)
   */
  private generateMapKey;
  /**
   * Get a date string in the format "-YYYY-M-D" for the given date
   *
   * @param {CalendarDate} viewDate - The date object
   * @returns {string} - The formatted date string, or an empty string if the date is null
   */
  private getDateString;
}
