/**
 * @class EventEmitter
 *
 * @property {Array} _listeners
 */
export default class EventEmitter {
    private _listeners;
    /**
     * Construct EventEmitter
     *
     * @param listeners
     */
    constructor(listeners?: any[]);
    /**
     * Destroys EventEmitter
     */
    destroy(): void;
    /**
     * Count listeners registered for the provided eventName
     *
     * @param eventName
     */
    listenerCount(eventName: any): any;
    /**
     * Subscribes on event eventName specified function
     *
     * @param eventName
     * @param listener
     */
    on(eventName: any, listener: any): void;
    /**
     * Subscribes on event name specified function to fire only once
     *
     * @param eventName
     * @param listener
     */
    once(eventName: any, listener: any): void;
    /**
     * Removes event with specified eventName.
     *
     * @param eventName
     */
    off(eventName: any): void;
    /**
     * Emits event with specified name and params.
     *
     * @param eventName
     * @param eventArgs
     */
    emit(eventName: any, ...eventArgs: any[]): any;
    /**
     * Register a new listener
     *
     * @param eventName
     * @param listener
     * @param once
     */
    _addListener(eventName: any, listener: any, once?: boolean): void;
    /**
     *
     * @param eventName
     */
    _removeListeners(eventName?: any): void;
    /**
     * Applies arguments to specified event
     *
     * @param eventName
     * @param eventArguments
     * @protected
     */
    _applyEvents(eventName: any, eventArguments: any): any;
}
