@voxket-ai/voxket-live
Version:
A React widget for embedding Voxket-powered audio/video/chat experiences.
33 lines (32 loc) • 925 B
TypeScript
export type EventMap = Record<string, (...args: any[]) => void>;
export declare class VoxketEventEmitter<T extends EventMap> {
private listeners;
/**
* Add an event listener
*/
on<K extends keyof T>(event: K, listener: T[K]): () => void;
/**
* Add a one-time event listener
*/
once<K extends keyof T>(event: K, listener: T[K]): () => void;
/**
* Remove an event listener
*/
off<K extends keyof T>(event: K, listener: T[K]): void;
/**
* Remove all listeners for an event
*/
removeAllListeners<K extends keyof T>(event?: K): void;
/**
* Emit an event
*/
emit<K extends keyof T>(event: K, ...args: Parameters<T[K]>): void;
/**
* Get the number of listeners for an event
*/
listenerCount<K extends keyof T>(event: K): number;
/**
* Get all event names with listeners
*/
eventNames(): (keyof T)[];
}