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