import type { NVL } from '@neo4j-nvl/base';
/**
* Base class for all interactions.
* @abstract
* @internal
* @hidden
*/
declare abstract class BaseInteraction
> {
private readonly nvl;
private readonly options;
private readonly container;
/**
* @internal
* @hidden
*/
callbackMap: Map void) | boolean>;
/**
* @internal
* @hidden
*/
constructor(nvl: NVL, options: P);
/**
* @internal
* @hidden
*/
get nvlInstance(): NVL;
/**
* Returns the current options of the interaction.
* @returns The current options of the interaction.
*/
get currentOptions(): P;
/**
* @internal
* @hidden
*/
get containerInstance(): HTMLElement;
/**
* @internal
* @hidden
*/
addEventListener: (type: keyof HTMLElementEventMap, listener: (event: Event) => void, options?: boolean | AddEventListenerOptions) => void;
/**
* @internal
* @hidden
*/
removeEventListener: (type: keyof HTMLElementEventMap, listener: (event: Event) => void, options?: boolean | EventListenerOptions) => void;
/**
* @internal
* @hidden
*/
callCallbackIfRegistered: (name: string, ...args: unknown[]) => void;
/**
* Add or update a callback for a given event of type.
* @param name - The name of the event.
* @param callback - The callback to be called when the event is triggered.
*/
updateCallback: (name: string, callback: ((...args: unknown[]) => void) | boolean) => void;
/**
* Remove a callback for a given event of type.
* @param name - The name of the event.
*/
removeCallback: (name: string) => void;
/**
* Enables or disables global text selection during a drag or pan operation.
* @param enable - Whether to enable or disable global text selection.
* @param eventFunction - The event function to be added/removed when text selection is disabled/enabled.
*/
toggleGlobalTextSelection: (enable: boolean, eventFunction?: (this: HTMLElement, ev: MouseEvent) => void) => void;
/**
* @internal
* @hidden
*/
abstract destroy(): void;
}
export { BaseInteraction };