import { IdDatabase, ObjectWithId } from './commons.js';
import { Entity } from './entity.js';
export declare abstract class EntityList
, T extends ObjectWithId> extends Entity
{
$key: string;
items: T[];
constructor($owner: P, $key: string, specs: any);
abstract get $entityType(): string;
abstract $idDatabase: IdDatabase;
abstract create(spec: any): T;
toJSON(): {
items: T[];
};
get $path(): string;
[Symbol.iterator](): IterableIterator;
get length(): number;
indexOf(item: T): number;
get first(): T | null;
get last(): T | null;
get(index: number): T | null;
find(predicate: (item: T, index: number) => boolean): T | null;
filter(predicate: (item: T, index: number) => boolean): T[];
map(fn: (item: T, index: number) => K): K[];
previousSiblings(item: T): IterableIterator;
nextSiblings(item: T): IterableIterator;
previousSibling(item: T): T | null;
nextSibling(item: T): T | null;
insert(spec: any, index?: number): T;
removeAt(index: number): void;
remove(item: T): void;
removeWhere(predicate: (item: T, index: number) => boolean): void;
replace(item: T, newSpec: any): T;
move(item: T, newIndex: number): void;
protected unregisterIds(item: T): void;
protected collectIds(obj: any): Set;
}
//# sourceMappingURL=list.d.ts.map