UNPKG

@ayanaware/bento

Version:

Modular runtime framework designed to solve complex tasks

35 lines (34 loc) 1.04 kB
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; }