/*! * Buttplug JS Source Code File - Visit https://buttplug.io for more info about * the project. Licensed under the BSD 3-Clause license. See LICENSE file in the * project root for full license information. * * @copyright Copyright (c) Nonpolynomial Labs LLC. All rights reserved. */ export declare const SYSTEM_MESSAGE_ID = 0; export declare const DEFAULT_MESSAGE_ID = 1; export declare const MAX_ID = 4294967295; export declare const MESSAGE_SPEC_VERSION_MAJOR = 4; export declare const MESSAGE_SPEC_VERSION_MINOR = 0; export interface ButtplugMessage { Ok?: Ok; Ping?: Ping; Error?: Error; RequestServerInfo?: RequestServerInfo; ServerInfo?: ServerInfo; RequestDeviceList?: RequestDeviceList; StartScanning?: StartScanning; StopScanning?: StopScanning; ScanningFinished?: ScanningFinished; StopCmd?: StopCmd; InputCmd?: InputCmd; InputReading?: InputReading; OutputCmd?: OutputCmd; DeviceList?: DeviceList; } export declare function msgId(msg: ButtplugMessage): number; export declare function setMsgId(msg: ButtplugMessage, id: number): void; export interface Ok { Id: number | undefined; } export interface Ping { Id: number | undefined; } export declare enum ErrorClass { ERROR_UNKNOWN = 0, ERROR_INIT = 1, ERROR_PING = 2, ERROR_MSG = 3, ERROR_DEVICE = 4 } export interface Error { ErrorMessage: string; ErrorCode: ErrorClass; Id: number | undefined; } export interface RequestDeviceList { Id: number | undefined; } export interface StartScanning { Id: number | undefined; } export interface StopScanning { Id: number | undefined; } export interface ScanningFinished { Id: number | undefined; } export interface RequestServerInfo { ClientName: string; ProtocolVersionMajor: number; ProtocolVersionMinor: number; Id: number | undefined; } export interface ServerInfo { MaxPingTime: number; ServerName: string; ProtocolVersionMajor: number; ProtocolVersionMinor: number; Id: number | undefined; } export interface DeviceFeature { FeatureDescriptor: string; Output: { [key: string]: DeviceFeatureOutput; }; Input: { [key: string]: DeviceFeatureInput; }; FeatureIndex: number; } export interface DeviceInfo { DeviceIndex: number; DeviceName: string; DeviceFeatures: { [key: number]: DeviceFeature; }; DeviceDisplayName?: string; DeviceMessageTimingGap?: number; } export interface DeviceList { Devices: { [key: number]: DeviceInfo; }; Id: number | undefined; } export declare enum OutputType { Unknown = "Unknown", Vibrate = "Vibrate", Rotate = "Rotate", Oscillate = "Oscillate", Constrict = "Constrict", Inflate = "Inflate", Position = "Position", HwPositionWithDuration = "HwPositionWithDuration", Temperature = "Temperature", Spray = "Spray", Led = "Led" } export declare enum InputType { Unknown = "Unknown", Battery = "Battery", RSSI = "RSSI", Button = "Button", Pressure = "Pressure" } export declare enum InputCommandType { Read = "Read", Subscribe = "Subscribe", Unsubscribe = "Unsubscribe" } export interface DeviceFeatureInput { Value: number[]; Command: InputCommandType[]; } export interface DeviceFeatureOutput { Value: number[]; Duration?: number[]; } export interface DeviceFeatureOutputCommand { Value: number; Duration?: number; } export interface OutputCmd { DeviceIndex: number; FeatureIndex: number; Command: { [key: string]: DeviceFeatureOutputCommand; }; Id: number | undefined; } export interface InputCmd { DeviceIndex: number; FeatureIndex: number; Type: InputType; Command: InputCommandType; Id: number | undefined; } export interface InputValue { Value: number; } export interface InputReading { DeviceIndex: number; FeatureIndex: number; Reading: { [key: string]: InputValue; }; Id: number | undefined; } export interface StopCmd { Id: number | undefined; DeviceIndex: number | undefined; FeatureIndex: number | undefined; Inputs: boolean | undefined; Outputs: boolean | undefined; }