import { MQTTLogic } from "../MQTTLogic";
import { CastSessionMessage } from "../message/CastSessionMessage";
import { DataMessage } from "../message/DataMessage";
import { DisplayReportMessage } from "../message/DisplayReportMessage";
import { WillMessage } from "../message/WillMessage";
import { YMSMessage } from "../message/YMSMessage";
import { IControllerMQTTCallback } from "./IControllerMQTTCallback";
import { AccountBindDeviceMessage } from "../message/AccountBindDeviceMessage";
import { UserHasBeenKickedMessage } from "../message/UserHasBeenKickedMessage";
export declare class ControllerMQTTImpl extends MQTTLogic {
    private readonly MYSELF_DISCONNECT_CALLBACK_GAP_MS;
    private readonly callback;
    private accountId;
    private isSkipDisconnectCallbackOnce;
    private lastDisconnectTime;
    constructor(clientId: string, callback: IControllerMQTTCallback);
    connect(displayCode: number): Promise<void>;
    disconnect(displayCode: number): Promise<string>;
    /**
     * 控制端单独增加的公开方法，用于控制端成功完成账号登录后，监听该账号topic下消息
     * @param accountId 登录后拿到的账号唯一ID
     */
    subscribeAccountTopic(accountId: number): void;
    /**
     * 控制端单独增加的公开方法，用于控制端成功退出账号或注销账号后，解除对指定账号的topic消息监听
     * @param accountId 登录后拿到的账号唯一ID
     */
    unsubscribeAccountTopic(accountId: number): void;
    protected isMessageFromSelf(message: YMSMessage): boolean;
    protected isMessageForMe(message: YMSMessage): boolean;
    protected createMySelfWill(displayCode: number, clientId: string): WillMessage;
    protected subscribeInterestTopic(displayCode: number): void;
    protected unsubscribeAllTopics(displayCode: number): void;
    protected onWillMessageArrived(message: WillMessage): void;
    protected onDisplayReportMessageArrived(message: DisplayReportMessage): void;
    protected onCastSessionMessageArrived(message: CastSessionMessage): void;
    protected onDataMessageArrived(message: DataMessage): void;
    protected onUserHasBeenKickedMessageArrived(message: UserHasBeenKickedMessage): void;
    protected onAccountBindDeviceMessageArrived(message: AccountBindDeviceMessage): void;
    protected onConnectionLost(cause: string): void;
}
//# sourceMappingURL=ControllerMQTTImpl.d.ts.map