import { Nullable } from '../../types/general';
import { VegaComponentName } from '../../types/ui.type';
import { VegaEventID } from './event-id/vega-event-id';
import { JQueryDelegatedEventStrategy } from './event-delegated/jquery-delegated-event-strategy';
export declare type EventSemanticsConfig = {
  global?: EventSemantics;
  components?: {
    [key in VegaComponentName]?: EventSemantics;
  };
};
export declare type EventSemantics = {
  namespace: 'vega' | 'native';
  jqueryDelegatedEvent?: boolean | JQueryDelegatedEventStrategy[];
};
/**
 * The `InternalVegaEventManager` class manages event semantics configuration for global and
 * component-specific settings.
 */
declare class InternalVegaEventManager {
  private config;
  private readonly defaultEventSemantics;
  /**
   * The function sets the semantics configuration for events.
   *
   * @param {EventSemanticsConfig} config - The `config` parameter is of type `EventSemanticsConfig`.
   */
  setSemantics(config: EventSemanticsConfig): void;
  /**
   * The function `getSemantics` returns the event semantics either from the global scope or from the
   * components within a given host element.
   *
   * @param {HTMLElement} host - The host parameter is an HTMLElement that represents the element on
   * which the event semantics are being checked.
   * @returns {EventSemantics} The method `getSemantics` returns a value of type `Nullable<EventSemantics>`.
   */
  getSemantics(host: HTMLElement): EventSemantics;
  /**
   * The function "getEnabledEventIdsByComponent" returns an array of event Ids associated with a given component
   * name.
   *
   * @param {VegaComponentName} componentName - The `componentName` parameter is a string that represents
   * the name of a Vega component.
   * @returns {Nullable<VegaEventID[]>} a nullable array of VegaEventID objects.
   */
  getEnabledEventIdsByComponent(componentName: VegaComponentName): Nullable<VegaEventID[]>;
  /**
   * The function `getSemanticsInGlobal` returns the global event semantics configuration.
   *
   * @returns {Nullable<EventSemantics>} The method is returning a nullable EventSemantics object.
   */
  private getSemanticsInGlobal;
  /**
   * The function `getSemanticsInComponents` returns the semantic configuration for a given component
   * based on its host element.
   *
   * @param {HTMLElement} host - The `host` parameter is an HTMLElement that represents the component for
   * which we want to retrieve the semantics.
   * @returns {Nullable<EventSemantics>} a value of type `Nullable<EventSemantics>`.
   */
  private getSemanticsInComponents;
}
declare const _default: InternalVegaEventManager;
export default _default;
