import { AbstractManagerListener, EventsDef, GlobalKey, ManagerEventTypeData, ManagerEventTypeKey, ManagerEventTypeName } from './types'; export interface AbstractManagerOpts { name: string; silent?: boolean; } export declare class AbstractManager { name: string; private _emitter; private silent; private filteredListenersMap; protected initialized: boolean; constructor({ name, silent }: AbstractManagerOpts); init(): void; teardown(): void; protected emit>(eventName: EventName, key: ManagerEventTypeKey | typeof GlobalKey, data?: ManagerEventTypeData): void; protected emitGlobal>(eventName: EventName, data?: ManagerEventTypeData): void; on>(eventName: EventName, key: ManagerEventTypeKey | typeof GlobalKey, listener: AbstractManagerListener): void; onGlobal>(eventName: EventName, listener: AbstractManagerListener): void; off>(eventName: EventName, key: ManagerEventTypeKey | typeof GlobalKey, listener: AbstractManagerListener): void; offGlobal>(eventName: EventName, listener: AbstractManagerListener): void; private getFilteredListener; protected log(type: 'log' | 'info' | 'error' | 'warn', ...messages: any[]): void; }