import type { EntityData, EntityDataRegistry } from './entity-data'; import { DisposableImpl } from '@gedit/utils'; import type { Entity } from './entity'; import type { EntityManager } from './entity-manager'; interface AbleHandle

{ handle(data1: EntityData, payload: P): void; handle(data1: EntityData, data2: EntityData, payload: P): void; handle(data1: EntityData, data2: EntityData, data3: EntityData, payload: P): void; handle(data1: EntityData, data2: EntityData, data3: EntityData, data4: EntityData, payload: P): void; handle(data1: EntityData, data2: EntityData, data3: EntityData, data4: EntityData, data5: EntityData, payload: P): void; } export declare abstract class Able

extends DisposableImpl implements AbleHandle

{ protected entity: Entity; static type: string; constructor(entity: Entity); /** * 类型名称 */ get type(): string; payload: P; /** * handle 和 before 执行之前, 且只执行一次 * @param entities - 所有绑定该able的实体列表 * @param payload * @return 返回新的payload, undefined则会阻断handle执行 */ static globalBefore?(entities: Entity[], payload: any): any | undefined; /** * handle执行之前, 每个实体都是执行 * @return 返回新的payload, undefined则会阻断handle执行 */ before?(payload: P): P | undefined; /** * 消费payload */ abstract handle(...args: any[]): void; /** * handle执行之后 */ after?(payload: P): void; /** * handle 和 before 执行之后, 且只执行一次 * @param payload * @param entities - 所有绑定该able的实体列表 */ static globalAfter?(entities: Entity[], payload: any): void; /** * 获取当前Able注册的数据 * @param registry */ getParam(registry: EntityDataRegistry): D; entityManager: EntityManager; } export type AblePayload = Required['payload']; /** * Able注册器 */ export interface AbleRegistry { readonly type: A['type']; new (...args: any[]): A; } export {}; //# sourceMappingURL=able.d.ts.map