///
import { ConnectionOptions } from '../connection/IConnection';
export interface IMqttClient {
on(event: 'error', cb: (error: Error) => void): IMqttClient;
on(event: string, cb: Function): IMqttClient;
publish(topic: string, message: string | Buffer, opts: object, callback?: Function): IMqttClient;
publish(topic: string, message: string | Buffer, callback?: Function): IMqttClient;
end(force?: boolean, opts?: object, cb?: Function): IMqttClient;
subscribe(topic: string | string[], opts?: object, callback?: Function): IMqttClient;
reconnect(opts?: object): IMqttClient;
}
export declare type MqttConnect = (url: string, options: ConnectionOptions) => IMqttClient | Promise;