@shockpkg/core
Version:
shockpkg core
39 lines (38 loc) • 782 B
TypeScript
/**
* Event dispatcher.
*/
export declare class Dispatcher<T> {
/**
* Event context.
*/
protected readonly _context: unknown;
/**
* Event handlers.
*/
protected readonly _handlers: Set<(event: T) => unknown>;
/**
* Event dispatcher constructor.
*
* @param context Context object.
*/
constructor(context: unknown);
/**
* Add listener.
*
* @param handler Event handler.
*/
on(handler: (event: T) => unknown): void;
/**
* Remove listener.
*
* @param handler Event handler.
*/
off(handler: (event: T) => unknown): void;
/**
* Trigger handlers.
*
* @param event Event data.
* @returns Handler count.
*/
trigger(event: T): number;
}