import { EventMap } from "@robotlegsjs/core";
import { IEventEmitterMap } from "../api/IEventEmitterMap";
import { EventEmitterMapConfig } from "./EventEmitterMapConfig";
import EventEmitter = require("eventemitter3");
/**
 * @private
 */
export declare class EventEmitterMap extends EventMap implements IEventEmitterMap {
    protected _eventEmitterListeners: EventEmitterMapConfig[];
    protected _suspendedEventEmitterListeners: EventEmitterMapConfig[];
    protected get _currentEventEmitterListeners(): EventEmitterMapConfig[];
    /**
     * @inheritDoc
     */
    on(emitter: EventEmitter, event: string | symbol, listener: EventEmitter.ListenerFn, context?: any): void;
    /**
     * @inheritDoc
     */
    once(emitter: EventEmitter, event: string | symbol, listener: EventEmitter.ListenerFn, context?: any): void;
    /**
     * @inheritDoc
     */
    off(emitter: EventEmitter, event: string | symbol, listener: EventEmitter.ListenerFn, context?: any): void;
    /**
     * @inheritDoc
     */
    unmapEventEmitterListeners(): void;
    /**
     * @inheritDoc
     */
    unmapAllListeners(): void;
    /**
     * @inheritDoc
     */
    suspend(): void;
    /**
     * @inheritDoc
     */
    resume(): void;
    protected _registerEventEmitterListener(emitter: EventEmitter, event: string | symbol, listener: EventEmitter.ListenerFn, context?: any, once?: boolean): void;
    protected _onceCallback(eventConfig: EventEmitterMapConfig): EventEmitter.ListenerFn;
    protected _unregisterEventEmitterListener(emitter: EventEmitter, event: string | symbol, listener: EventEmitter.ListenerFn, context?: any): void;
}
