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
TypeScript
/**
* 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;
}