import { default as EventDispatcher, EventTarget } from './../event-dispatcher';
import { default as EventListener } from './../event-listener';
/**
 * An asynchronous implementation of an event dispatcher.
 */
export default class AsynchronousEventDispatcher implements EventDispatcher {
    private eventListeners;
    constructor();
    /**
     * {@inheritdoc}
     */
    dispatch<T>(name: EventTarget, payload?: T): Promise<T>;
    /**
     * {@inheritdoc}
     */
    addEventListener(name: EventTarget, listener: EventListener): void;
    /**
     * {@inheritdoc}
     */
    removeEventListener(name: EventTarget, listener: EventListener): void;
    /**
     * {inheritdoc}
     */
    clearEventListeners(name?: EventTarget): void;
}
