toosoon-events
Version:
Project providing services implemented as singleton class instances
59 lines (58 loc) • 1.54 kB
TypeScript
/**
* Utility abstract class for creating multiple event listeners
*
* @exports
* @class EventManager
* @abstract
*/
export declare abstract class EventManager<EventListener extends Function> {
/**
* Array of listeners bound to this manager event
*/
protected abstract listeners: EventListener[];
/**
* Add a listener to this manager listeners
*/
on(listener: EventListener): () => void;
/**
* Remove a listener from this manager listeners
*/
off(listener: EventListener): void;
/**
* Bind event listeners
*/
protected abstract bind?(): void;
/**
* Unbind event listeners
*/
protected abstract unbind?(): void;
}
/**
* Utility abstract class for creating multiple events listeners
*
* @exports
* @class EventsManager
* @abstract
*/
export declare abstract class EventsManager<EventKey extends string, EventListener extends Function> {
/**
* Arrays of listeners bound to this manager events
*/
protected abstract listeners: Record<EventKey, EventListener[]>;
/**
* Add a listener to this manager listeners
*/
on(eventKey: EventKey, listener: EventListener): () => void;
/**
* Remove a listener gtom this manager listeners
*/
off(eventKey: EventKey, listener: EventListener): void;
/**
* Bind events listeners
*/
protected abstract bind?(eventKey: EventKey): void;
/**
* Unbind events listeners
*/
protected abstract unbind?(eventKey: EventKey): void;
}