import { AnyEntity, Dictionary, EntityProperty, IPrimaryKey, Primary } from '../typings'; import { Reference } from './Reference'; export declare class ArrayCollection { readonly owner: O & AnyEntity; [k: number]: T; protected readonly items: T[]; protected initialized: boolean; private _property?; constructor(owner: O & AnyEntity, items?: T[]); getItems(): T[]; toArray(): Dictionary[]; toJSON(): Dictionary[]; getIdentifiers & IPrimaryKey>(field?: string): U[]; add(...items: (T | Reference)[]): void; set(items: (T | Reference)[]): void; /** * @internal */ hydrate(items: T[]): void; remove(...items: (T | Reference)[]): void; removeAll(): void; contains(item: T | Reference, check?: boolean): boolean; count(): number; isInitialized(fully?: boolean): boolean; get length(): number; [Symbol.iterator](): IterableIterator; /** * @internal */ get property(): EntityProperty; protected propagate(item: T, method: 'add' | 'remove'): void; protected propagateToInverseSide(item: T, method: 'add' | 'remove'): void; protected propagateToOwningSide(item: T, method: 'add' | 'remove'): void; protected shouldPropagateToCollection(collection: ArrayCollection, method: 'add' | 'remove'): boolean; }