@mixer/interactive-node
Version:
A NodeJS and Browser compatible client for mixer.com's interactive 2 Protocol
68 lines (67 loc) • 2.71 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import { IClient } from '../IClient';
import { IRawValues } from '../interfaces';
import { Method, Reply } from '../wire/packets';
import { Group } from './Group';
import { IScene, ISceneData, ISceneDataArray } from './interfaces';
import { IControl } from './interfaces/controls/IControl';
import { IGroup, IGroupDataArray } from './interfaces/IGroup';
import { IParticipant } from './interfaces/IParticipant';
export interface IState extends EventEmitter {
setClient(client: IClient): void;
processMethod(method: Method<any>): void | Reply;
synchronizeLocalTime(time?: Date | number): Date;
synchronizeRemoteTime(time?: Date | number): Date;
reset(): void;
getGroups(): Map<string, IGroup>;
getGroup(id: string): IGroup;
getScenes(): Map<string, IScene>;
getScene(id: string): IScene;
onSceneCreate(data: ISceneData): IScene;
synchronizeScenes(data: ISceneDataArray): IScene[];
synchronizeGroups(data: IGroupDataArray): IGroup[];
onWorldUpdate(data: IRawValues): void;
getControl(id: string): IControl;
getParticipants(): Map<string, IParticipant>;
getParticipantByUserID(id: number): IParticipant;
getParticipantByUsername(name: string): IParticipant;
getParticipantBySessionID(id: string): IParticipant;
/**
* Fired when the ready state of the interactive session changes.
*/
on(event: 'ready', listener: (ready: boolean) => void): this;
/**
* Fired when the connected participant's state is updated
*/
on(event: 'selfUpdate', listener: (self: IParticipant) => void): this;
/**
* Fired when a participant joins.
*/
on(event: 'participantJoin', listener: (participant: IParticipant) => void): this;
/**
* Fired when a participant leaves.
*/
on(event: 'participantLeave', listener: (participantSessionID: string, participant: IParticipant) => void): this;
/**
* Fired when a scene is deleted.
*/
on(event: 'sceneDeleted', listener: (sceneID: string, reassignSceneID: string) => void): this;
/**
* Fired when a scene is created.
*/
on(event: 'sceneCreated', listener: (scene: IScene) => void): this;
/**
* Fired when a group is deleted.
*/
on(event: 'groupDeleted', listener: (groupID: string, reassignGroupID: string) => void): this;
/**
* Fired when a group is created.
*/
on(event: 'groupCreated', listener: (group: Group) => void): this;
/**
* Fired when the world is updated.
*/
on(event: 'worldUpdated', listener: (world: IRawValues) => void): this;
on(event: string, listener: Function): this;
}