import { IInput, IInputEvent } from '../state/interfaces/controls/IInput'; import { IParticipantArray } from '../state/interfaces/IParticipant'; import { Method, Reply } from '../wire/packets'; import { onReadyParams } from './methodTypes'; import { IGroupDataArray, IGroupDeletionParams } from '../state/interfaces/IGroup'; import { ISceneData, ISceneDataArray, ISceneDeletionParams } from '../state/interfaces/IScene'; /** * A Method handler takes a given method and handles it, optionally replying with a reply instance. */ export interface IMethodHandler { (method: Method): Reply | void; } /** * A manager class which allows for methods on the interactive protocol to have handlers registered. * When the manager is handed a method, it will look up the relevant method handler and call it. */ export declare class MethodHandlerManager { private handlers; addHandler(method: 'onWorldUpdate', handler: IMethodHandler): void; addHandler(method: 'onParticipantJoin', handler: IMethodHandler): void; addHandler(method: 'onParticipantLeave', handler: IMethodHandler): void; addHandler(method: 'onParticipantUpdate', handler: IMethodHandler): void; addHandler(method: 'onSceneCreate', handler: IMethodHandler): void; addHandler(method: 'onSceneDelete', handler: IMethodHandler): void; addHandler(method: 'onSceneUpdate', handler: IMethodHandler): void; addHandler(method: 'onGroupCreate', handler: IMethodHandler): void; addHandler(method: 'onGroupDelete', handler: IMethodHandler): void; addHandler(method: 'onGroupUpdate', handler: IMethodHandler): void; addHandler(method: 'onControlCreate', handler: IMethodHandler): void; addHandler(method: 'onControlDelete', handler: IMethodHandler): void; addHandler(method: 'onControlUpdate', handler: IMethodHandler): void; addHandler(method: 'onReady', handler: IMethodHandler): void; addHandler(method: 'hello', handler: IMethodHandler): void; addHandler(method: 'giveInput', handler: IMethodHandler>): void; addHandler(method: string, handler: IMethodHandler): void; /** * Removes a handler for a method. */ removeHandler(method: string): void; /** * Looks up a handler for a given method and calls it. */ handle(method: Method): Reply | void; }