interface EventListenerEntry { element: Element | Document | Window; event: string; callback: (event: Event) => void; callbackProxy: (event: Event) => void; options: boolean | AddEventListenerOptions; eventManager: EventManager; } /** * Event DOM manager for internal use in Handsontable. * * @class EventManager */ declare class EventManager { /** * @type {object} */ context: (Record & { eventListeners: EventListenerEntry[]; }) | null; /** * @param {object} [context=null] An object to which event listeners will be stored. */ constructor(context?: (object & { eventListeners?: EventListenerEntry[]; }) | null); /** * Register specified listener (`eventName`) to the element. * * @param {Element} element Target element. * @param {string} eventName Event name. * @param {Function} callback Function which will be called after event occur. * @param {AddEventListenerOptions|boolean} [options] Listener options if object or useCapture if boolean. * @returns {Function} Returns function which you can easily call to remove that event. */ addEventListener(element: Element | Document | Window, eventName: string, callback: (event: E) => void, options?: boolean | AddEventListenerOptions): () => void; /** * Remove the event listener previously registered. * * @param {Element} element Target element. * @param {string} eventName Event name. * @param {Function} callback Function to remove from the event target. It must be the same as during registration listener. * @param {boolean} [onlyOwnEvents] Whether whould remove only events registered using this instance of EventManager. */ removeEventListener(element: Element | Document | Window, eventName: string, callback: (event: Event) => void, onlyOwnEvents?: boolean): void; /** * Clear all previously registered events. * * @private * @since 0.15.0-beta3 * @param {boolean} [onlyOwnEvents] Whether whould remove only events registered using this instance of EventManager. */ clearEvents(onlyOwnEvents?: boolean): void; /** * Clear all previously registered events. */ clear(): void; /** * Destroy instance of EventManager, clearing all events of the context. */ destroy(): void; /** * Destroy instance of EventManager, clearing only the own events. */ destroyWithOwnEventsOnly(): void; /** * Trigger event at the specified target element. * * @param {Element} element Target element. * @param {string} eventName Event name. */ fireEvent(element: Element, eventName: string): void; } export default EventManager; /** * @private * @returns {number} */ export declare function getListenersCounter(): number;