import { Logger } from 'homebridge';
import { GiraHomebridgeConfig, QuoadDevice } from './types';
export declare class QuoadClient {
    private config;
    private log;
    private ws;
    private connected;
    private authenticated;
    private messageId;
    private pendingRequests;
    private devices;
    private reconnectTimer;
    private heartbeatTimer;
    private readonly connectionConfig;
    constructor(config: GiraHomebridgeConfig, log: Logger);
    connect(): Promise<void>;
    private authenticate;
    private handleMessage;
    private handleResponse;
    private handleEvent;
    private updateDeviceValue;
    private sendRequest;
    getDevices(): Promise<QuoadDevice[]>;
    private parseDevice;
    private parseFunction;
    private mapFunctionType;
    setDeviceValue(deviceId: string, functionId: string, value: any): Promise<void>;
    refreshDeviceStates(): Promise<void>;
    private setupHeartbeat;
    private handleDisconnection;
    private scheduleReconnect;
    disconnect(): void;
    isConnected(): boolean;
    getDevice(deviceId: string): QuoadDevice | undefined;
    getAllDevices(): QuoadDevice[];
}
//# sourceMappingURL=quoad-client.d.ts.map