import { Nullable } from '../../../types/general';
import { VegaEventID } from '../event-id/vega-event-id';
import { EventSemanticsConfig } from '../internal-vega-event-manager';
import { JQueryDelegatedEventStrategy } from './jquery-delegated-event-strategy';
export declare type DelegatedStrategyMapType = Map<string, JQueryDelegatedEventStrategy>;
/** The `JQueryDelegatedStrategyController` class manages delegated event strategies for different HTML elements in a TypeScript application. */
declare class JQueryDelegatedStrategyController {
  private strategyRegistry;
  /**
   * The constructor initializes a registry of update strategies for various input events in a Vega application.
   */
  constructor();
  /**
   * The function checks if a given event on a specific HTML element is supported for delegation.
   *
   * @param {HTMLElement} host - The `host` parameter is an HTMLElement, which represents the element on which the event listener is attached.
   * @param {VegaEventID} eventId - The `eventName` parameter is a string that represents the name of the event.
   * @returns {boolean} a boolean value.
   */
  isSupportDelegated(host: HTMLElement, eventId: VegaEventID): boolean;
  /**
   * The function updates the strategy registry with custom strategies based on the event semantics configuration.
   *
   * @param {EventSemanticsConfig} eventSemantics - The parameter `eventSemantics` is of type `EventSemanticsConfig`. It is an object that contains two properties: `global` and `components`.
   */
  updateRegistryFromEventSemantics(eventSemantics: EventSemanticsConfig): void;
  /**
   * The function returns a delegated event strategy based on the host element and event name.
   *
   * @param {HTMLElement} host - The `host` parameter is an HTMLElement that represents the element on
   * which the event strategy is being applied. It is the element to which the event listener is attached.
   * @param {VegaEventID} eventId - The `eventName` parameter is a string that represents the name of the event for which you want to retrieve the strategy.
   * @returns {Nullable<JQueryDelegatedEventStrategy>} a Nullable<JQueryDelegatedEventStrategy>.
   */
  getStrategy(host: HTMLElement, eventId: VegaEventID): Nullable<JQueryDelegatedEventStrategy>;
  /**
   * The function `overrideCurrentStrategy` updates the strategy registry with a new strategy for a specific host and event.
   *
   * @param {JQueryDelegatedEventStrategy[]} strategies - The parameter "strategy" is of type "JQueryDelegatedEventStrategy".
   */
  private updateStrategyRegistry;
}
declare const _default: JQueryDelegatedStrategyController;
export default _default;
