import { IContainer } from "tstl/base/container/IContainer";
import { IEventDispatcher } from "./IEventDispatcher";
import { CollectionEvent } from "./CollectionEvent";
export declare class EventDispatcher<T, SourceT extends IContainer<T, SourceT, IteratorT, ReverseT>, IteratorT extends IContainer.Iterator<T, SourceT, IteratorT, ReverseT>, ReverseT extends IContainer.ReverseIterator<T, SourceT, IteratorT, ReverseT>> implements IEventDispatcher<T, SourceT, IteratorT, ReverseT> {
    /**
     * @hidden
     */
    private listeners_;
    constructor();
    dispatchEvent(event: CollectionEvent<T, SourceT, IteratorT, ReverseT>): boolean;
    hasEventListener(type: CollectionEvent.Type): boolean;
    addEventListener(type: CollectionEvent.Type, listener: CollectionEvent.Listener<T, SourceT, IteratorT, ReverseT>): void;
    removeEventListener(type: CollectionEvent.Type, listener: CollectionEvent.Listener<T, SourceT, IteratorT, ReverseT>): void;
}
//# sourceMappingURL=EventDispatcher.d.ts.map