import type { Able, AbleRegistry } from './able'; import type { Entity } from './entity'; import { EntityAbles } from './entity-ables'; import { Disposable, DisposableCollection, Emitter } from '@gedit/utils'; export interface AbleDispatchEvent

{ payloadKey: string | Symbol; payload: P; entityChangedKeys: string[]; } export declare class AbleManager implements Disposable { readonly toDispose: DisposableCollection; private schedule; protected onAbleChangedEmitter: Emitter; protected onAbleDispatchEmitter: Emitter>; /** * Able的类缓存,便于在fromJSON时候查找对应的类 */ protected registryMap: Map; /** * ableType -> Set */ protected entityDataMapByAble: Map; /** * payload -> Set */ protected payloadAbleMap: Map; /** * able对应的类型被更改 */ readonly onAbleChanged: import("@gedit/utils").Event; readonly onAbleDispatch: import("@gedit/utils").Event>; constructor(); createAble(Registry: AbleRegistry, entity: Entity): Able; /** * 存储Able注册器 * @param Registry */ registerAble(Registry: AbleRegistry): void; getRegistryByType(type: string): AbleRegistry | undefined; /** * 触发able,如果命中entity并使得entity数据变化,则返回true * @param payloadKey * @param payload * @return 修改的 entity id */ dispatch

(payloadKey: string | Symbol, payload: P): string[]; createAbleMap(entity: Entity): EntityAbles; /** * 通过able查找entity * @param registry */ getEntitiesByAble(registry: AbleRegistry): T[]; getEntitiesByAbles(...registries: AbleRegistry[]): T[]; /** * 获取单个实体 * @param registry */ getEntityByAble(registry: AbleRegistry): T | undefined; protected fireAbleChanged(type: string): void; dispose(): void; } //# sourceMappingURL=able-manager.d.ts.map