import IRegisteredEventListener, { IEventSubscriber } from '../interfaces/IRegisteredEventListener'; type AnyFunction = (...args: any[]) => any; export default class EventSubscriber implements IEventSubscriber { groups: { [key: string]: IRegisteredEventListener[]; }; private readonly registeredEventListeners; on(emitter: { on(event: K, listener: (...args: Parameters) => ReturnType, includeUnhandledEvents?: boolean): any; off(event: K, listener: (...args: Parameters) => ReturnType): any; }, eventName: K, handler: (...args: Parameters) => ReturnType, includeUnhandledEvents?: boolean): IRegisteredEventListener; once(emitter: { once(event: K, listener: (...args: Parameters) => ReturnType, includeUnhandledEvents?: boolean): any; off(event: K, listener: (...args: Parameters) => ReturnType): any; }, eventName: K, handler: (...args: Parameters) => ReturnType, includeUnhandledEvents?: boolean): IRegisteredEventListener; off(...listeners: IRegisteredEventListener[]): void; close(...keepMockEvents: (string | symbol)[]): void; group(name: string, ...listeners: IRegisteredEventListener[]): void; endGroup(name: string): void; private removeHandlerById; } export {};