UNPKG

@mixer/interactive-node

Version:

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

32 lines (31 loc) 1.75 kB
/// <reference types="node" /> import { EventEmitter } from 'events'; import { ClientType } from './Client'; import { InteractiveError } from './errors'; import { IControl, IGroupDataArray, IGroupDeletionParams, IInput, IParticipantArray, ISceneControlDeletion, ISceneData, ISceneDataArray, ISceneDeletionParams } from './state/interfaces'; import { IState } from './state/IState'; export interface IClient extends EventEmitter { clientType: ClientType; state: IState; execute<T>(method: string, params: T, discard: boolean): Promise<any>; ready(isReady: boolean): Promise<void>; createControls(controls: ISceneData): Promise<IControl[]>; createGroups(groups: IGroupDataArray): Promise<IGroupDataArray>; createScene(scene: ISceneData): Promise<ISceneData>; createScenes(scenes: ISceneDataArray): Promise<ISceneDataArray>; updateControls(controls: ISceneData): Promise<void>; updateGroups(groups: IGroupDataArray): Promise<IGroupDataArray>; deleteControls(controls: ISceneControlDeletion): Promise<void>; deleteGroup(data: IGroupDeletionParams): Promise<void>; deleteScene(data: ISceneDeletionParams): Promise<void>; updateScenes(scenes: ISceneDataArray): Promise<void>; updateParticipants(participants: IParticipantArray): Promise<void>; giveInput<T extends IInput>(_: T): Promise<void>; getTime(): Promise<number>; on(event: 'open', listener: () => void): this; on(event: 'send', listener: (payload: string) => void): this; on(event: 'message', listener: (payload: string) => void): this; on(event: 'error', listener: (err: InteractiveError.Base) => void): this; on(event: 'hello', listener: () => void): this; on(event: string, listener: Function): this; }