import { AnsiLogger } from 'matterbridge/logger';
import { MessageContext, RequestMessage, UserData } from '../models/index.js';
import { AbstractClient } from '../routing/abstractClient.js';
import { ResponseBroadcaster } from '../routing/listeners/responseBroadcaster.js';
import { PendingResponseTracker } from '../routing/services/pendingResponseTracker.js';
export declare class MQTTClient extends AbstractClient {
    protected clientName: string;
    private readonly rriot;
    private readonly mqttUsername;
    private readonly mqttPassword;
    private mqttClient;
    private keepConnectionAliveInterval;
    private connected;
    private isForceReconnecting;
    private consecutiveAuthErrors;
    private authErrorBackoffTimeout;
    constructor(logger: AnsiLogger, context: MessageContext, userdata: UserData, responseBroadcaster: ResponseBroadcaster, responseTracker: PendingResponseTracker);
    isConnected(): boolean;
    isReady(): boolean;
    connect(): void;
    disconnect(): Promise<void>;
    protected sendInternal(duid: string, request: RequestMessage): Promise<void>;
    private keepConnectionAlive;
    private onConnect;
    private subscribeToQueue;
    private onSubscribe;
    private onDisconnect;
    private onError;
    private terminateConnection;
    private onClose;
    private onOffline;
    private onReconnect;
    private onMessage;
}
//# sourceMappingURL=mqttClient.d.ts.map