export declare enum QoS {
    AtMostOnce = 0,
    AtLeastOnce = 1,
    ExactlyOnce = 2
}
/** Possible types of data to send via publish or receive via subscription */
export declare type Payload = String | Object | DataView;
/** Every request sent returns an MqttRequest */
export interface MqttRequest {
    packet_id?: number;
}
/** Subscription request metadata */
export interface MqttSubscribeRequest extends MqttRequest {
    topic: string;
    qos: QoS;
    error_code?: number;
}
/** Represents the message sent when a client is found to be offline by the broker */
export declare class MqttWill {
    readonly topic: string;
    readonly qos: QoS;
    readonly payload: Payload;
    readonly retain: boolean;
    constructor(topic: string, qos: QoS, payload: Payload, retain?: boolean);
}
