import { IContainer } from "tstl/base/container/IContainer";
export declare class CollectionEvent<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 Iterable<T> {
    readonly type: string;
    readonly first: IteratorT;
    readonly last: IteratorT;
    constructor(type: string, first: IteratorT, last: IteratorT);
    [Symbol.iterator](): IterableIterator<T>;
}
export declare namespace CollectionEvent {
    type Type = "insert" | "erase" | "refresh";
    type Listener<T, SourceT extends IContainer<T, SourceT, IteratorT, ReverseT>, IteratorT extends IContainer.Iterator<T, SourceT, IteratorT, ReverseT>, ReverseT extends IContainer.ReverseIterator<T, SourceT, IteratorT, ReverseT>> = (event: CollectionEvent<T, SourceT, IteratorT, ReverseT>) => void;
}
//# sourceMappingURL=CollectionEvent.d.ts.map