import { CalendarEvent } from '../../../../../helpers/calendar/calendar-event';
import { VegaCalendarBaseEventLayoutGenerator } from './base-event-layout-generator';
import { VegaCalendarFullDayEventLayout } from './full-day-event-layout';
import { VegaCalendarFullDayEventLayoutRow } from './full-day-event-layout-row';
/** The `VegaCalendarLongEventLayoutGenerator` class in TypeScript generates a layout for long calendar events with overlapping prevention logic. */
export declare class VegaCalendarFullDayEventLayoutGenerator extends VegaCalendarBaseEventLayoutGenerator {
  /**
   * The function generates a long event layout for a calendar based on the input calendar events.
   *
   * @param {CalendarEvent[][]} calendarEvents - CalendarEvent[][] is a two-dimensional array where each
   * element represents a day in the calendar and contains an array of CalendarEvent objects representing events on that day.
   * @returns {VegaCalendarFullDayEventLayout} A new instance of `VegaCalendarFullDayEventLayout` is being returned, which is constructed
   * using the `layoutRows` array containing `VegaCalendarFullDayEventLayoutRow` objects.
   */
  generate(calendarEvents: CalendarEvent[][]): VegaCalendarFullDayEventLayout;
  /**
   * The function creates a new instance of VegaCalendarFullDayEventLayoutRow.
   *
   * @returns {VegaCalendarFullDayEventLayoutRow} An instance of the class `VegaCalendarFullDayEventLayoutRow` is being returned.
   */
  protected createNewLayoutCell(): VegaCalendarFullDayEventLayoutRow;
  /**
   * Filter the all should order group event from event list
   *
   * @param {CalendarEvent[][]} allEvents all event list
   * @returns {VegaCalendarFullDayEventView[]} the group event view list
   */
  private collectAllShouldOrderLongEvents;
  /**
   * This function sorts an array of VegaCalendarFullDayEventView objects based on their start and end times.
   *
   * @param {VegaCalendarFullDayEventView[]} eventViews - The `eventViews` parameter is an array of
   * `VegaCalendarFullDayEventView` objects that represent long events in a calendar. The function
   * `sortLongEventViews` takes this array as input and sorts it based on the start and end times of the events.
   * @returns {VegaCalendarFullDayEventView[]} The function `sortLongEventViews` is returning an array of `VegaCalendarFullDayEventView`
   * objects that have been sorted based on the comparison logic provided in the sorting function. The sorting is done based on the `start` and `end` properties of the objects in the array.
   */
  private sortLongEventViews;
}
