import type LightController from './lightControl.js';
export type { LightController };
export type CommandType = 'get_device_list' | 'get_fixture_list' | 'get_scene_list' | 'get_node_config' | 'get_sleep' | 'get_intensity' | 'get_cct' | 'get_hsi' | 'get_rgb' | 'get_xy' | 'get_system_effect' | 'get_effect' | 'get_fan_mode' | 'get_fan_speed' | 'get_preset_list' | 'get_system_effect_list' | 'get_quickshot_list' | 'get_group_list' | 'set_sleep' | 'toggle_sleep' | 'set_intensity' | 'increase_intensity' | 'increment_intensity' | 'set_cct' | 'increase_cct' | 'increment_cct' | 'set_hsi' | 'set_color' | 'set_rgb' | 'set_xy' | 'set_system_effect' | 'set_effect' | 'set_effect_speed' | 'set_effect_intensity' | 'set_fan_mode' | 'set_fan_speed' | 'set_preset' | 'recall_preset' | 'set_quickshot' | 'save_scene' | 'delete_scene' | 'recall_scene' | 'update_scene' | 'create_group' | 'delete_group' | 'add_to_group' | 'remove_from_group' | 'get_device_info' | 'update_firmware';
export interface Device {
    node_id?: string;
    device_name?: string;
    name?: string;
    id?: string;
    [key: string]: unknown;
}
export type CommandCallback = (success: boolean, message: string, data?: unknown) => void;
export interface NodeConfig {
    cct_support?: boolean;
    cct_min?: number;
    cct_max?: number;
    product_cct_min?: number;
    product_cct_max?: number;
    cct_extension_support?: boolean;
    cct_extension_min?: number;
    cct_extension_max?: number;
    cct_extension_enabled?: boolean;
    gm_support?: boolean;
    gm_min?: number;
    gm_max?: number;
    gm_v2_support?: boolean;
    hsi_support?: boolean;
    rgb_support?: boolean;
    advanced_hsi_support?: boolean;
    sleep?: boolean;
    intensity?: number;
    cct?: number;
    hue?: number;
    sat?: number;
    r?: number;
    g?: number;
    b?: number;
    x?: number;
    y?: number;
    work_mode?: string;
    fan_mode?: number;
    fan_speed?: number;
    effect_type?: string;
    effect_name?: string;
    [key: string]: unknown;
}
export interface CommandArgs {
    [key: string]: unknown;
}
export interface Command {
    version: number;
    client_id: string;
    type: CommandType;
    action?: string;
    node_id?: string;
    args?: CommandArgs;
    request?: {
        type: string;
    };
}
export interface Config {
    wsUrl?: string;
    clientId?: string;
    debug?: boolean;
    latitude?: number;
    longitude?: number;
    defaultCurve?: string;
    cctMin?: number;
    cctMax?: number;
    intensityMin?: number;
    intensityMax?: number;
    autoStartApp?: boolean;
    maxLux?: number | Record<string, number>;
    weather?: boolean;
    [key: string]: unknown;
}
export interface CommandDeps {
    createController: (wsUrl?: string, clientId?: string, debug?: boolean) => Promise<LightController>;
    findDevice: (controller: LightController, deviceQuery: string) => Device | null;
    asyncCommand: <T extends unknown[]>(fn: (...args: T) => Promise<void>) => (...args: T) => Promise<void>;
    saveWsUrl?: (url: string) => void;
    loadConfig?: () => Config | null;
    saveConfig?: (config: Config, changes?: string[]) => void;
}
export interface CommandOptions {
    url?: string;
    clientId?: string;
    debug?: boolean;
    intensity?: string;
    interval?: string;
    follow?: boolean;
    errors?: boolean;
    lat?: string;
    lon?: string;
    date?: string;
    curve?: string;
    privacyOff?: boolean;
    [key: string]: unknown;
}
//# sourceMappingURL=types.d.ts.map