/**
 * Yeelight Device Handling.
 */
/// <reference types="node" />
import { EventEmitter } from "node:events";
import net from "node:net";
export interface DeviceInfo {
    location: string;
    id: string;
    model: string;
    support: string;
    power: boolean;
    bright: number;
    color_mode: number;
    ct: number;
    rgb: string;
    hue: number;
    sat: number;
    host: string;
    port: number;
    debug: boolean;
    trackedAttributes: string[];
    fw_ver: string;
    name: string;
}
export declare const EMPTY_DEVICEINFO: DeviceInfo;
export interface Command {
    id: number;
    method: string;
    params: Array<number | string | boolean>;
}
/**
 * Handles the connection to a concrete Yee light.
 */
export declare class Device extends EventEmitter {
    info: DeviceInfo;
    debug: boolean;
    connected: boolean;
    forceDisconnect: boolean;
    retryTimer?: NodeJS.Timeout;
    socket?: net.Socket;
    rest: string;
    constructor(info: DeviceInfo);
    connect(): void;
    disconnect(forceDisconnect?: boolean): void;
    bindSocket(): void;
    socketClosed(error?: Error): void;
    didConnect(): void;
    didReceiveResponse(data: any): void;
    sendCommand(data: any): void;
    updateDevice(device: any): void;
}
//# sourceMappingURL=yeedevice.d.ts.map