@novo-learning/novo-sdk
Version:
SDK for the Novolanguage Speech Analysis API
20 lines (19 loc) • 778 B
TypeScript
export interface Event<T> {
name: string;
props: T;
}
export declare type EventCallbackFn<T> = (data: T) => void;
export declare type ChanneledEventBus<T = EventBus> = EventBus & {
parent: T;
};
export declare class EventBus {
readonly parent?: EventBus | undefined;
readonly identifier?: string | undefined;
private readonly listeners;
constructor(parent?: EventBus | undefined, identifier?: string | undefined);
channel(identifier?: string): ChanneledEventBus<this>;
root(): EventBus;
addEventListener<T = never>(event: string, callbackFn: EventCallbackFn<T>): void;
removeEventListener<T = never>(event: string, callbackFn?: EventCallbackFn<T>): void;
dispatch<T = never>(event: string, data?: T, broadcast?: boolean): void;
}