export declare abstract class Collection<T> {
    private _collection;
    get length(): number;
    get(key: string | Symbol): T;
    protected hasKey(key: string): boolean;
    protected find(target: any, propertyName?: string): any;
    protected append(key: string | Symbol, item: T): void;
    protected update(key: string | Symbol, item: T): void;
    protected clear(): void;
    getItems(): IterableIterator<T>;
    getKeys(): IterableIterator<string | symbol>;
    toArray(): T[];
    protected abstract validate(item: T): any;
    protected abstract itemAdded(item: T): void;
    abstract verify(): void;
}
