/// <reference types="node" />
import { MqttService } from '../../common';
import { GoveeDeviceStatus } from '../govee-device';
import { OpenAPIDevice } from './models/device-list.response';
import { OpenAPIDeviceState } from './models/device-state.response';
import { OpenAPIMqttPacket } from './openapi.models';
import { OpenAPIConfig, OpenAPIMqttMessageHandler } from './openapi.types';
export type OnOpenAPIMqttMessageCallback = (message: GoveeDeviceStatus) => Promise<void>;
export declare class OpenAPIService implements OpenAPIMqttMessageHandler {
    private config;
    private readonly mqtt;
    private readonly logger;
    private messageCallback;
    private apiKey;
    private static findState;
    static deserializeMqttMessage(payload: string | Buffer): OpenAPIMqttPacket;
    private static parseMqttMessage;
    constructor(config: OpenAPIConfig, mqtt: MqttService<OpenAPIMqttPacket>);
    handle(message: OpenAPIMqttPacket, topic?: string): Promise<void>;
    setApiKey(apiKey: string): void;
    setMqttCallback(callback: OnOpenAPIMqttMessageCallback): void;
    sendMessage(topic: string, message: Buffer): Promise<void>;
    private request;
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    getDevices(): Promise<OpenAPIDevice[]>;
    getDevice(deviceId: string, model: string, commandId?: string): Promise<OpenAPIDeviceState | undefined>;
    getScenes(deviceId: string, model: string): Promise<OpenAPIDevice | undefined>;
    getDIYScenes(deviceId: string, model: string): Promise<OpenAPIDevice | undefined>;
}
//# sourceMappingURL=openapi.service.d.ts.map