export declare type EventArguments = any[];
export declare type EventListener = (...args: EventArguments) => false | void;
export default class Emitter {
    listeners: Map<string, Set<EventListener>>;
    /**
     * Remove all listeners for the defined event name.
     */
    clearListeners(eventName: string): this;
    /**
     * Syncronously execute listeners for the defined event and arguments.
     */
    emit(eventName: string, args?: EventArguments): this;
    /**
     * Return all event names with registered listeners.
     */
    getEventNames(): string[];
    /**
     * Return a set of listeners for a specific event name.
     */
    getListeners(eventName: string): Set<EventListener>;
    /**
     * Remove a listener function from a specific event name.
     */
    off(eventName: string, listener: EventListener): this;
    /**
     * Register a listener function to a specific event name.
     */
    on(eventName: string, listener: EventListener): this;
}
//# sourceMappingURL=Emitter.d.ts.map