import { InteractingEntry, EventType } from '../../../types/vega-chart';
/** The code is defining an abstract class called `InteractingEntryGenerator` with a generic type `T`. This class is responsible for generating an `InteractingEntry` object based on the provided options. */
export declare abstract class InteractingEntryGenerator<T> {
  /** declaring a protected abstract property called `eventType` of type `EventType`. */
  protected abstract eventType: EventType;
  /**
   * The function generates an InteractingEntry object based on the provided options.
   *
   * @param {unknown} options - The `options` parameter is a generic type `T` that represents the options or configuration for the `generate` function. It can be any type that you define when calling the `generate` function.
   * @returns {InteractingEntry} An object of type InteractingEntry is being returned.
   */
  generate(options?: T): InteractingEntry;
  /** declaring an abstract method called `createShouldHandle` that takes an optional `options` parameter of type `T` and returns a function. */
  protected abstract createShouldHandle(options?: T): InteractingEntry['shouldHandle'];
  /** declaring an abstract method called `createHandle` that takes an optional `options` parameter of type `T` and returns a function that takes an `event` parameter of type `Event` and returns `void`. */
  protected abstract createHandle(options?: T): InteractingEntry['handle'];
}
