import { HashMultiMap } from "tstl/container/HashMultiMap";
import { Entry } from "tstl/utility/Entry";
import { ICollection } from "../basic/ICollection";
import { CollectionEvent } from "../basic/CollectionEvent";
import "./internal";
export declare class HashMultiMapCollection<Key, T> extends HashMultiMap<Key, T> implements ICollection<Entry<Key, T>, HashMultiMap<Key, T>, HashMultiMap.Iterator<Key, T>, HashMultiMap.ReverseIterator<Key, T>> {
    /**
     * @hidden
     */
    private dispatcher_;
    clear(): void;
    /**
     * @hidden
     */
    protected _Handle_insert(first: HashMultiMap.Iterator<Key, T>, last: HashMultiMap.Iterator<Key, T>): void;
    /**
     * @hidden
     */
    protected _Handle_erase(first: HashMultiMap.Iterator<Key, T>, last: HashMultiMap.Iterator<Key, T>): void;
    /**
     * @inheritDoc
     */
    dispatchEvent(event: HashMultiMapCollection.Event<Key, T>): void;
    /**
     * @inheritDoc
     */
    refresh(): void;
    /**
     * @inheritDoc
     */
    refresh(it: HashMultiMap.Iterator<Key, T>): void;
    /**
     * @inheritDoc
     */
    refresh(first: HashMultiMap.Iterator<Key, T>, last: HashMultiMap.Iterator<Key, T>): void;
    /**
     * @inheritDoc
     */
    hasEventListener(type: CollectionEvent.Type): boolean;
    /**
     * @inheritDoc
     */
    addEventListener(type: CollectionEvent.Type, listener: HashMultiMapCollection.Listener<Key, T>): void;
    /**
     * @inheritDoc
     */
    removeEventListener(type: CollectionEvent.Type, listener: HashMultiMapCollection.Listener<Key, T>): void;
}
export declare namespace HashMultiMapCollection {
    type Event<Key, T> = CollectionEvent<Entry<Key, T>, HashMultiMap<Key, T>, HashMultiMap.Iterator<Key, T>, HashMultiMap.ReverseIterator<Key, T>>;
    type Listener<Key, T> = CollectionEvent.Listener<Entry<Key, T>, HashMultiMap<Key, T>, HashMultiMap.Iterator<Key, T>, HashMultiMap.ReverseIterator<Key, T>>;
    const Event: typeof CollectionEvent;
    export import Iterator = HashMultiMap.Iterator;
    export import ReverseIterator = HashMultiMap.ReverseIterator;
}
//# sourceMappingURL=HashMultiMapCollection.d.ts.map