import { ButtplugLogger } from '../core/Logging'; import { EventEmitter } from 'eventemitter3'; import { ButtplugClientDevice } from './ButtplugClientDevice'; import { IButtplugClientConnector } from './IButtplugClientConnector'; import * as Messages from '../core/Messages'; export interface ButtplugClientServerInfo { readonly serverName: string; readonly maxPingTime: number; readonly protocolVersionMajor: number; readonly protocolVersionMinor: number; } export declare class ButtplugClient extends EventEmitter { protected _pingTimer: NodeJS.Timeout | null; protected _connector: IButtplugClientConnector | null; protected _devices: Map; protected _clientName: string; protected _logger: ButtplugLogger; protected _isScanning: boolean; private _serverInfo; private _sorter; constructor(clientName?: string); get connected(): boolean; get devices(): ReadonlyMap; get isScanning(): boolean; get serverInfo(): ButtplugClientServerInfo | undefined; connect: (connector: IButtplugClientConnector) => Promise; disconnect: () => Promise; startScanning: () => Promise; stopScanning: () => Promise; stopAllDevices: () => Promise; protected disconnectHandler: () => void; protected parseMessages: (msgs: Messages.ButtplugMessage[]) => void; protected initializeConnection: () => Promise; private parseDeviceList; protected requestDeviceList: () => Promise; protected shutdownConnection: () => Promise; protected sendMessage(msg: Messages.ButtplugMessage): Promise; protected checkConnector(): void; protected sendMsgExpectOk: (msg: Messages.ButtplugMessage) => Promise; protected sendMessageClosure: (msg: Messages.ButtplugMessage) => Promise; }