/// import { EventEmitter } from 'events'; import AuthTokens from '../types/AuthTokens'; import DeviceId from '../types/DeviceId'; import { PublishPacket } from './messages/Publish'; import MqttConnection from './MqttConnection'; import MqttMessage from './MqttMessage'; import MqttPacket from './MqttPacket'; import { MessageOptions } from '..'; /** * Handles decoding and sending all sorts of messages used by Facebook Messenger. * It utilizes all network primitives defined in the MqttConnection class. */ export default class MqttApi extends EventEmitter { connection: MqttConnection; lastMsgId: number; tokens: AuthTokens; lastPingMilis: number; deviceId: DeviceId; constructor(); sendSubscribe(msg: MqttMessage): Promise; /** * Connects the MQTT socket and binds listeners for receiving messages. * @param tokens * @param deviceId */ connect(tokens: AuthTokens, deviceId: DeviceId): Promise; reconnect(): Promise; sendPing: () => Promise; /** * Sends a CONNECT mqtt message */ sendConnectMessage(): Promise; sendPublish(topic: string, data: Buffer | string): Promise; waitForAck(type: string): Promise; /** * Sends a facebook messenger message to someone. */ sendMessage(threadId: string, message: string, options?: MessageOptions): Promise<{ succeeded: boolean; errStr?: string; }>; sendPublishConfirmation(flags: number, publish: PublishPacket): Promise; parsePacket(packet: MqttPacket): Promise; }