UNPKG

@mixer/interactive-node

Version:

A NodeJS and Browser compatible client for mixer.com's interactive 2 Protocol

68 lines (67 loc) 2.71 kB
/// <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; }