import { AccessoryPlugin, AccessoryConfig, API, Logging, Service, Characteristic, CharacteristicGetCallback, CharacteristicSetCallback, CharacteristicValue } from 'homebridge';
import * as mqtt from 'mqtt';
import { JblMode, AlarmTopic } from './const';
export declare class JbMqttAccPlg implements AccessoryPlugin {
    readonly Service: typeof Service;
    readonly Characteristic: typeof Characteristic;
    private securityCode;
    private name;
    private model;
    private currentState;
    private client_Id;
    private mqttOptions;
    private mqttUrl;
    private mqttTopics;
    private mqttTopicPrefix;
    private client;
    private allowCommunication;
    private runningChangeCallback?;
    private runningChangeTarget?;
    private log;
    private securityStateService;
    private informationService;
    constructor(logger: Logging, config: AccessoryConfig, api: API);
    asyncPublish(topic: AlarmTopic, message: string, opts?: mqtt.IClientPublishOptions): Promise<mqtt.Packet | undefined>;
    getTopic(name: AlarmTopic): string;
    getServices(): Service[];
    changeState: (target: JblMode) => Promise<void>;
    getCurrentState(callback: CharacteristicGetCallback): void;
    getTargetState(callback: CharacteristicGetCallback): void;
    setTargetState(state: CharacteristicValue, callback: CharacteristicSetCallback): void;
}
//# sourceMappingURL=accessory.d.ts.map