import { AbilityType, Actor, isAbilityFactory } from './actor'; /** * Type definition for task interactions. */ export interface TaskInteraction
{
invoke(param: P): void | Promise = { new (actor: Actor): TaskInteraction };
export type Task = TaskType | TaskType [];
export type TaskProcedure = (
ability: AbilityType,
param: P,
) => void | Promise {
/**
* A ability service object to invoke commands on.
*/
public ability?: A;
/**
* An actor to perform sub-tasks.
*/
public actor?: Actor;
constructor(actor: Actor) {
this.actor = actor;
this.ability = actor.ability(ability);
}
invoke(param: P): void | Promise