import type { AbleRegistry, Entity, EntityDataRegistry, EntityRegistry } from './'; import { AbleManager } from './able-manager'; import { Disposable, DisposableCollection, Emitter } from '@gedit/utils'; import { ConfigEntity } from './config-entity'; import { PlaygroundContext } from './playground-context'; /** * TODO registry改成decorator * Entity 管理器, 全局唯一 */ export declare class EntityManager implements Disposable { /** * Able管理器 */ readonly ableManager: AbleManager; readonly context: PlaygroundContext; readonly toDispose: DisposableCollection; protected onEntityChangedEmitter: Emitter; /** * Entity的类缓存,便于在fromJSON时候查询对应的类 */ protected registryMap: Map; /** * Entity数据类缓存,便于 fromJSON使用 */ protected dataRegistryMap: Map; /** * Entity的所有实例缓存 */ protected entityInstanceMap: Map; /** * Entity的实例按类型缓存,便于查询优化 */ protected entityInstanceMapByType: Map; /** * 所有配置实体的缓存 */ protected configEntities: Map; /** * 当对应的实体类型变化后触发 */ readonly onEntityChanged: import("@gedit/utils").Event; /** * 暂停触发实体类型变化 */ pauseEntityChanged: boolean; constructor( /** * Able管理器 */ ableManager: AbleManager, context: PlaygroundContext); /** * 创建实体 * @param Registry * @param opts */ createEntity(Registry: EntityRegistry, opts?: Omit): T; isConfigEntity(type: string): boolean; /** * 批量删除实体 * @param Registry */ removeEntities(Registry: EntityRegistry): void; removeEntityById(id: string): boolean; /** * 触发实体reset * @param registry */ resetEntities(registry: EntityRegistry): void; resetEntity(registry: EntityRegistry, autoCreate?: boolean): void; updateConfigEntity(registry: EntityRegistry, config: Partial): void; /** * @param type */ getRegistryByType(type: string): EntityRegistry | undefined; /** * @param Registry */ registerEntity(Registry: EntityRegistry): void; registerEntityData(Registry: EntityDataRegistry): void; getDataRegistryByType(type: string): EntityDataRegistry | undefined; getEntityById(id: string): T | undefined; /** * * @param registry * @param autoCreate 是否要自动创建, 默认false */ getEntity(registry: EntityRegistry, autoCreate?: boolean): T | undefined; /** * * @param registry */ getEntities(registry: EntityRegistry): T[]; getEntitiesByAble(registry: AbleRegistry): T[]; getEntitiesByAbles(...registries: AbleRegistry[]): T[]; getEntityByAble(registry: AbleRegistry): T | undefined; /** * @param registry */ hasEntity(registry: EntityRegistry): boolean; /** * 只存储config数据,忽略动态数据 */ storeState(): object; /** * @param data */ restoreState(data: object): void; protected saveEntity(entity: Entity): void; protected removeEntity(entity: Entity): void; /** * 重制所有entity为初始化状态 */ reset(): void; private schedule; fireEntityChanged(entityType: string): void; dispose(): void; } //# sourceMappingURL=entity-manager.d.ts.map