import { StringIndexable } from "../util"; import { Expansion, Query } from "../elements"; import { IEntity, EntityType, EntityMetadata } from "../metadata"; import { BuilderProvider } from "./builder-provider"; export declare class Workspace { private _caches; private _builderProvider; constructor(builderProvider?: BuilderProvider); execute(query: Query): T[]; execute(query: Query, asMap: true): Map; hydrate(entities: IEntity[], expand: ArrayLike): ArrayLike; add(items: IEntity[] | StringIndexable[], metadata: EntityMetadata, expand?: ArrayLike, isDto?: boolean): void; remove(items: IEntity[], metadata: EntityMetadata, expand?: ArrayLike): void; clear(type?: EntityType): void; private _hydrateNavigations(entities, metadata, expand); private _hydrateReference(entities, metadata, expansion); private _hydrateChildren(parents, metadata, expansion); private _hydrateCollection(collectors, metadata, expansion); private _getEntityCache(metadata); private _createEntityCache(metadata); }