import type { Able, AblePayload, AbleRegistry } from './able'; import type { AbleManager } from './able-manager'; import type { Entity } from './entity'; import type { EntityDataRegistry } from './entity-data'; import { DisposableImpl, Emitter } from '@gedit/utils'; type AbleTypes = string[]; export interface AbleChangedEvent { type: 'delete' | 'add' | 'update'; ableTypes: AbleTypes; entity: Entity; } export declare class EntityAbles extends DisposableImpl { protected entity: Entity; protected ableManager: AbleManager; protected readonly ables: Map; protected readonly ableIndex: WeakMap; /** * data数据和able的绑定数目关系, 当绑定able为空时,则自动删除entityData */ protected readonly dataBinds: Map; protected onAbleChangedEmiter: Emitter; private _pauseChangedTimes; readonly onAbleChanged: import("@gedit/utils").Event; private _index; constructor(entity: Entity, ableManager: AbleManager); /** * 暂停更新开关 */ protected get pauseChanged(): boolean; protected set pauseChanged(pauseChanged: boolean); add(Registry: AbleRegistry): Able; remove(Registry: AbleRegistry): void; has(able: AbleRegistry): boolean; get(able: AbleRegistry): Able | undefined; protected handle(able: Able, payload: AblePayload): AblePayload; toJSON(): string[]; fromJSON(arr?: string[]): void; reset(): void; dispose(): void; fireChanged(type: AbleChangedEvent['type'], ableTypes: AbleTypes): void; dispatchAbles

(ables: AbleRegistry[], payload: P): AblePayload; } export {}; //# sourceMappingURL=entity-ables.d.ts.map