import { EntityType, IEntity } from "../metadata"; import { Query, Expansion, Filter, ByIndexes } from "../elements"; import { BuilderProvider } from "../caching"; import { Service } from "./service"; import { ServiceProvider } from "./service-provider"; export declare class ServiceCluster { private _serviceProvider; private _services; private _queryCache; private _workspace; private _pendingQueries; constructor(serviceProvider?: ServiceProvider, builderProvider?: BuilderProvider); loadAll(type: EntityType, expand?: string | ArrayLike): Promise; loadAll(type: EntityType, expand: string | ArrayLike, asMap: true): Promise>; loadById(type: EntityType, key: any, expand?: string | ArrayLike): Promise; loadByIds(type: EntityType, keys: any[], expand?: string | ArrayLike): Promise; loadByIds(type: EntityType, keys: K[], expand: string | ArrayLike, asMap: true): Promise>; loadByIndexes(type: EntityType, criteria: ByIndexes.Criteria, expand?: string | ArrayLike, filter?: Filter.Criteria): Promise; loadByIndexes(type: EntityType, criteria: ByIndexes.Criteria, expand: string | ArrayLike, filter: Filter.Criteria, asMap: true): Promise>; saveOne(entity: T): Promise; saveMany(entities: T[]): Promise; executeQuery(query: Query): Promise; executeQuery(query: Query, asMap: true): Promise>; flush(args?: { entityType?: EntityType; }): void; register(entityType: EntityType, executer: Service): void; delete(entities: IEntity[]): Promise; /** * Make sure that the payload of the provided query exists in the workspace. */ private _loadIntoWorkspace(query); /** * Load entities from a service by looking up the service associated with the entity type of the query. * * The query must not contain any virtuals. */ private _loadFromService(query); private _getService(entityType); private _crawl(entities, path); }