187 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			187 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/**
 | 
						|
 *
 | 
						|
 * A module containing support for mqtt connection establishment and operations.
 | 
						|
 *
 | 
						|
 * @packageDocumentation
 | 
						|
 * @module mqtt
 | 
						|
 */
 | 
						|
import { ICrtError } from './error';
 | 
						|
/**
 | 
						|
 * Quality of service control for mqtt publish operations
 | 
						|
 *
 | 
						|
 * @category MQTT
 | 
						|
 */
 | 
						|
export declare enum QoS {
 | 
						|
    /**
 | 
						|
     * QoS 0 - At most once delivery
 | 
						|
     * The message is delivered according to the capabilities of the underlying network.
 | 
						|
     * No response is sent by the receiver and no retry is performed by the sender.
 | 
						|
     * The message arrives at the receiver either once or not at all.
 | 
						|
     */
 | 
						|
    AtMostOnce = 0,
 | 
						|
    /**
 | 
						|
     * QoS 1 - At least once delivery
 | 
						|
     * This quality of service ensures that the message arrives at the receiver at least once.
 | 
						|
     */
 | 
						|
    AtLeastOnce = 1,
 | 
						|
    /**
 | 
						|
     * QoS 2 - Exactly once delivery
 | 
						|
 | 
						|
     * This is the highest quality of service, for use when neither loss nor
 | 
						|
     * duplication of messages are acceptable. There is an increased overhead
 | 
						|
     * associated with this quality of service.
 | 
						|
 | 
						|
     * Note that, while this client supports QoS 2, the AWS IoT Core service
 | 
						|
     * does not support QoS 2 at time of writing (May 2020).
 | 
						|
     */
 | 
						|
    ExactlyOnce = 2
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Possible types of data to send via publish.
 | 
						|
 *
 | 
						|
 * An ArrayBuffer will send its bytes without transformation.
 | 
						|
 * An ArrayBufferView (DataView, Uint8Array, etc) will send its bytes without transformation.
 | 
						|
 * A String will be sent with utf-8 encoding.
 | 
						|
 * An Object will be sent as a JSON string with utf-8 encoding.
 | 
						|
 *
 | 
						|
 * @category MQTT
 | 
						|
 */
 | 
						|
export type Payload = string | Record<string, unknown> | ArrayBuffer | ArrayBufferView;
 | 
						|
/**
 | 
						|
 * Function called upon receipt of a Publish message on a subscribed topic.
 | 
						|
 *
 | 
						|
 * @param topic The topic to which the message was published.
 | 
						|
 * @param payload The payload data.
 | 
						|
 * @param dup DUP flag. If true, this might be re-delivery of an earlier
 | 
						|
 *            attempt to send the message.
 | 
						|
 * @param qos Quality of Service used to deliver the message.
 | 
						|
 * @param retain Retain flag. If true, the message was sent as a result of
 | 
						|
 *               a new subscription being made by the client. *
 | 
						|
 *
 | 
						|
 * @category MQTT
 | 
						|
 */
 | 
						|
export type OnMessageCallback = (topic: string, payload: ArrayBuffer, dup: boolean, qos: QoS, retain: boolean) => void;
 | 
						|
/**
 | 
						|
 * Every request sent returns an MqttRequest
 | 
						|
 *
 | 
						|
 * @category MQTT
 | 
						|
 */
 | 
						|
export interface MqttRequest {
 | 
						|
    /** Packet ID being acknowledged when the request completes */
 | 
						|
    packet_id?: number;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * The data returned from an on_connection_success callback
 | 
						|
 *
 | 
						|
 * @category MQTT
 | 
						|
 */
 | 
						|
export interface OnConnectionSuccessResult {
 | 
						|
    /**
 | 
						|
     * A boolean indicating if the connection resumed a session.
 | 
						|
     */
 | 
						|
    session_present: boolean;
 | 
						|
    /**
 | 
						|
     * An optional connect return code received from the server, if a connect return code was returned.
 | 
						|
     */
 | 
						|
    reason_code?: number;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * The data returned from an on_connection_failed callback
 | 
						|
 *
 | 
						|
 * @category MQTT
 | 
						|
 */
 | 
						|
export interface OnConnectionFailedResult {
 | 
						|
    /**
 | 
						|
     * Error description of the error that occurred
 | 
						|
     */
 | 
						|
    error: ICrtError;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * The data returned from the on_connection_closed callback
 | 
						|
 *
 | 
						|
 * @category MQTT
 | 
						|
 */
 | 
						|
export interface OnConnectionClosedResult {
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Subscription SUBACK result
 | 
						|
 *
 | 
						|
 * @category MQTT
 | 
						|
 */
 | 
						|
export interface MqttSubscribeRequest extends MqttRequest {
 | 
						|
    /** Topic filter of the SUBSCRIBE packet being acknowledged */
 | 
						|
    topic: string;
 | 
						|
    /** Maximum QoS granted by the server. This may be lower than the requested QoS. */
 | 
						|
    qos: QoS;
 | 
						|
    /** If an error occurred, the error code */
 | 
						|
    error_code?: number;
 | 
						|
}
 | 
						|
/**
 | 
						|
 * A Will message is published by the server if a client is lost unexpectedly.
 | 
						|
 *
 | 
						|
 * The Will message is stored on the server when a client connects.
 | 
						|
 * It is published if the client connection is lost without the server
 | 
						|
 * receiving a DISCONNECT packet.
 | 
						|
 *
 | 
						|
 * [MQTT - 3.1.2 - 8]
 | 
						|
 *
 | 
						|
 * @category MQTT
 | 
						|
 */
 | 
						|
export declare class MqttWill {
 | 
						|
    /** Topic to publish Will message on. */
 | 
						|
    readonly topic: string;
 | 
						|
    /** QoS used when publishing the Will message. */
 | 
						|
    readonly qos: QoS;
 | 
						|
    /** Content of Will message. */
 | 
						|
    readonly payload: Payload;
 | 
						|
    /** Whether the Will message is to be retained when it is published. */
 | 
						|
    readonly retain: boolean;
 | 
						|
    constructor(
 | 
						|
    /** Topic to publish Will message on. */
 | 
						|
    topic: string, 
 | 
						|
    /** QoS used when publishing the Will message. */
 | 
						|
    qos: QoS, 
 | 
						|
    /** Content of Will message. */
 | 
						|
    payload: Payload, 
 | 
						|
    /** Whether the Will message is to be retained when it is published. */
 | 
						|
    retain?: boolean);
 | 
						|
}
 | 
						|
/**
 | 
						|
 * Listener signature for event emitted from an {@link MqttClientConnection} when the connection reaches an initial
 | 
						|
 * connected state
 | 
						|
 *
 | 
						|
 * @param session_present true if the reconnection went to an existing session, false if this is a clean session
 | 
						|
 *
 | 
						|
 * @category MQTT
 | 
						|
 */
 | 
						|
export type MqttConnectionConnected = (session_present: boolean) => void;
 | 
						|
/**
 | 
						|
 * Listener signature for event emitted from an {@link MqttClientConnection} when the connection has fully disconnected
 | 
						|
 * by user request
 | 
						|
 *
 | 
						|
 * @category MQTT
 | 
						|
 */
 | 
						|
export type MqttConnectionDisconnected = () => void;
 | 
						|
/**
 | 
						|
 * Listener signature for event emitted from an {@link MqttClientConnection} when the connection successfully
 | 
						|
 * reestablishes itself after an interruption
 | 
						|
 *
 | 
						|
 * @param return_code MQTT connect return code (should be 0 for a successful reconnection)
 | 
						|
 * @param session_present true if the reconnection went to an existing session, false if this is a clean session
 | 
						|
 *
 | 
						|
 * @category MQTT
 | 
						|
 */
 | 
						|
export type MqttConnectionResumed = (return_code: number, session_present: boolean) => void;
 | 
						|
/**
 | 
						|
 * Const value for max reconnection back off time
 | 
						|
 *
 | 
						|
 * @category MQTT
 | 
						|
 */
 | 
						|
export declare const DEFAULT_RECONNECT_MAX_SEC = 128;
 | 
						|
/**
 | 
						|
 * Const value for min reconnection back off time
 | 
						|
 *
 | 
						|
 * @category MQTT
 | 
						|
 */
 | 
						|
export declare const DEFAULT_RECONNECT_MIN_SEC = 1;
 |