import { TapoApiRequest, TapoApiResponse } from '../types'; export interface ColorInfo { hue?: number; saturation?: number; color_temp?: number; } export interface BrightnessInfo { brightness?: number; } export interface LightingState { on?: boolean; brightness?: number; hue?: number; saturation?: number; color_temp?: number; } export interface LightEffect { name: string; enable: boolean; brightness?: number; custom?: number; segments?: number[]; expansion_strategy?: number; } /** * Controller for lighting functionality (brightness, color, effects) * Single responsibility: Lighting control and color management */ export declare class LightingController { private readonly sendRequest; constructor(sendRequest: (request: TapoApiRequest) => Promise); /** * Set device brightness (1-100) */ setBrightness(brightness: number): Promise; /** * Set color using HSV values */ setColorHSV(hue: number, saturation: number, brightness?: number): Promise; /** * Set color using RGB values */ setColorRGB(red: number, green: number, blue: number, brightness?: number): Promise; /** * Set color using predefined color names */ setNamedColor(colorName: string, brightness?: number): Promise; /** * Set color temperature (2500K - 6500K) */ setColorTemperature(temperature: number, brightness?: number): Promise; /** * Set lighting effect */ setLightEffect(effect: LightEffect): Promise; /** * Get current lighting state */ getLightingState(): Promise; /** * Check if device supports brightness control */ static supportsBrightnessControl(deviceModel: string): boolean; /** * Check if device supports color control */ static supportsColorControl(deviceModel: string): boolean; /** * Check if device supports color temperature control */ static supportsColorTemperature(deviceModel: string): boolean; /** * Convert RGB to HSV */ private rgbToHsv; /** * Get predefined color map */ private getNamedColorMap; }