camstreamerlib
Version:
Helper library for CamStreamer ACAP applications.
38 lines (37 loc) • 1.09 kB
TypeScript
import { IWsClient } from './types';
type TEventType<T extends {
type: string;
}> = T extends {
type: infer Type;
} ? Type : never;
type TEvent<T extends {
type: string;
}, Type extends TEventType<T>> = T extends {
type: Type;
} ? T : never;
type TValidate<T extends {
type: string;
}> = (data: string) => {
type: 'init';
data: TEvent<T, TEventType<T>>;
} | TEvent<T, TEventType<T>>;
type TListenerFunction<T extends {
type: string;
}, Type extends TEventType<T>> = (data: TEvent<T, Type>, isInit: boolean) => void;
export declare class WsEvents<T extends {
type: string;
}> {
private validate;
ws: IWsClient;
private _isDestroyed;
private listeners;
constructor(validate: TValidate<T>, ws: IWsClient);
get isDestroyed(): boolean;
resendInitData(): void;
addListener<Type extends TEventType<T>>(type: Type, listener: TListenerFunction<T, Type>, id: string): void;
removeListener<Type extends TEventType<T>>(type: Type, id: string): void;
private onMessage;
private processMessage;
destroy(): void;
}
export {};