import { CalendarEvent } from '../../../../../helpers/calendar/calendar-event';
import { VegaCalendarBaseEventLayout } from './base-event-layout';
import { VegaCalendarBaseEventLayoutCell } from './base-event-layout-cell';
/** This code snippet is defining an abstract class named `VegaCalendarBaseEventLayoutGenerator` in TypeScript. The class contains an abstract method `generate` that must be implemented by any class that extends `VegaCalendarBaseEventLayoutGenerator`. */
export declare abstract class VegaCalendarBaseEventLayoutGenerator {
  /**
   * The function `addCurrentEventToLayout` adds a long event view to a layout row without overlapping with existing events.
   *
   * @param {VegaCalendarBaseEventLayoutCell[]} layoutCells - The `layoutCells` parameter is an array of
   * `VegaCalendarBaseEventLayoutCell` objects. These objects represent rows in a layout where long events are displayed without overlapping each other.
   * @param {unknown} input - The `currentView` parameter represents the current long event view that you want to add to the layout rows without overlapping with existing events. The function `addCurrentEventToLayoutRow` searches for a layout row that does not have any overlap with the current view. If such a row is found,
   */
  protected addCurrentEventToLayout(layoutCells: VegaCalendarBaseEventLayoutCell[], input: unknown): void;
  abstract generate(calendarEvents: CalendarEvent[][] | CalendarEvent[]): VegaCalendarBaseEventLayout;
  protected abstract createNewLayoutCell(): VegaCalendarBaseEventLayoutCell;
}
