UNPKG

klf-200-api

Version:

This module provides a wrapper to the socket API of a Velux KLF-200 interface. You will need at least firmware 0.2.0.0.71 on your KLF interface for this library to work.

86 lines (85 loc) 2.72 kB
/** * Generic typed interface for defining a typed listener function. * * @exports * @interface Listener<T> */ export interface Listener<T> { /** * This function is called in case of an event. * @param {T} event The typed event parameter. * @returns {any} The returned value of the function will be ignored. * @memberof Listener<T> */ (event: T): any; } /** * You should call the method dispose if you don't need the listener anymore. * * @exports * @interface Disposable */ export interface Disposable { /** * When you call the dispose method the listener will be removed from the event emitter. * * @returns {void} * @memberof Disposable */ dispose(): void; } /** passes through events as they happen. You will not get events from before you start listening */ /** * Event emitter class that handles typed events. * * @export * @class TypedEvent<T> */ export declare class TypedEvent<T> { private listeners; private listenersOncer; /** * Adds a listener function to an event emitter. * * @param listener Function that is called if the event is emitted. * @returns {Disposable} Returns a disposable object that should be disposed when not needed anymore. * @memberof TypedEvent<T> */ on: (listener: Listener<T>) => Disposable; /** * Adds a listener function to an event emitter that is called only once. * * @param listener Function that is called only once if the event is emitted. * @returns {void} * @memberof TypedEvent<T> */ once: (listener: Listener<T>) => void; /** * Removes a listener function from an event emitter. * If it is called from inside an event handler * the current event will still call the removed handler * if it wasn't called so far. * * @param listener Function that should be removed. * @returns {void} * @memberof TypedEvent<T> */ off: (listener: Listener<T>) => void; /** * Calls the registered event handler listener functions on after the other. * The order in which the functions are called is not defined. * * @param {T} event The typed event parameter that will be provided to each listener. * @returns {Promise<void>} * @memberof TypedEvent<T> */ emit: (event: T) => Promise<void>; /** * Pipes another event emitter to this event emitter. * * @param te Event emitter that is called after this event emitter. * @returns {Disposable} Returns a disposable object that should be disposed when not needed anymore. * @memberof TypedEvent<T> */ pipe: (te: TypedEvent<T>) => Disposable; }