/* tslint:disable:interface-name */ declare namespace Paho { namespace MQTT { interface MQTTError { errorCode: string; errorMessage: string; } interface WithInvocationContext { invocationContext: object; } interface ErrorWithInvocationContext extends MQTTError, WithInvocationContext {} interface OnSubscribeSuccessParams extends WithInvocationContext { grantedQos: number; } type OnConnectionLostHandler = (error: MQTTError) => void; type OnMessageHandler = (message: Message) => void; interface ConnectionOptions { timeout?: number; userName?: string; password?: string; willMessage?: Message; keepAliveInterval?: number; cleanSession?: boolean; useSSL?: boolean; invocationContext?: object; onSuccess?: (o: WithInvocationContext) => void; mqttVersion?: number; onFailure?: (e: ErrorWithInvocationContext) => void; hosts?: string[]; ports?: number[]; } interface SubscribeOptions { qos?: number; invocationContext?: object; onSuccess?: (o: OnSubscribeSuccessParams) => void; onFailure?: (e: ErrorWithInvocationContext) => void; timeout?: number; } interface UnsubscribeOptions { invocationContext?: object; onSuccess?: (o: WithInvocationContext) => void; onFailure?: (e: ErrorWithInvocationContext) => void; timeout?: number; } class Client { public readonly clientId: string; public readonly host: string; public readonly path: string; public readonly port: number; public onConnectionLost: OnConnectionLostHandler; public onMessageArrived: OnMessageHandler; public onMessageDelivered: OnMessageHandler; // tslint:disable unified-signatures constructor(host: string, port: number, path: string, clientId: string); constructor(host: string, port: number, clientId: string); constructor(hostUri: string, clientId: string); public connect(connectionOptions?: ConnectionOptions); public disconnect(); public getTraceLog(): object[]; public startTrace(); public stopTrace(); public send(message: Message); public subscribe(filter: string, subcribeOptions?: SubscribeOptions); public unsubscribe(filter: string, unsubcribeOptions?: UnsubscribeOptions); } class Message { public destinationName: string; public readonly duplicate: boolean; public readonly payloadBytes: ArrayBuffer; public readonly payloadString: string; public qos: number; public retained: boolean; constructor(payload: string | ArrayBuffer); } } }