@ayanaware/bento
Version:
Modular runtime framework designed to solve complex tasks
35 lines (34 loc) • 1.04 kB
TypeScript
import type { BentoOptions } from '../Bento';
export declare type EntityEventHandler = (...args: Array<any>) => void;
export interface EntityEventSubscription {
name: string;
handler: EntityEventHandler;
}
export declare class EntityEvents {
private readonly name;
private readonly emitter;
private readonly subject;
private subCount;
private readonly subscriptions;
private readonly options;
constructor(name: string, options: BentoOptions);
/**
* Emit Event
* @param name Event name
* @param args Event args
*/
emit(name: string, ...args: Array<any>): void;
/**
* Emit Event and store as subject
* @param name Event name
* @param args Event args
*/
emitSubject(name: string, ...args: Array<any>): void;
/**
* Purges subject data for event
* @param name Event name
*/
purgeSubject(name: string): void;
subscribe(name: string, handler: EntityEventHandler, context?: unknown): number;
unsubscribe(id?: number): void;
}