import type { TableEventListener, EventListenerId, TableEventHandlersEventArgumentMap, TableEventHandlersReturnMap } from '../ts-types';
export declare class EventTarget {
    private listenersData;
    on<TYPE extends keyof TableEventHandlersEventArgumentMap>(type: TYPE, listener: TableEventListener<TYPE>): EventListenerId;
    off(type: string, listener: TableEventListener<keyof TableEventHandlersEventArgumentMap>): void;
    off(id: EventListenerId): void;
    addEventListener<TYPE extends keyof TableEventHandlersEventArgumentMap>(type: TYPE, listener: TableEventListener<TYPE>, option?: any): void;
    removeEventListener(type: string, listener: TableEventListener<keyof TableEventHandlersEventArgumentMap>): void;
    hasListeners(type: string): boolean;
    fireListeners<TYPE extends keyof TableEventHandlersEventArgumentMap>(type: TYPE, event: TableEventHandlersEventArgumentMap[TYPE]): TableEventHandlersReturnMap[TYPE][];
    release(): void;
}
