export interface WledState { on: boolean; brightness: number; transition: number; preset: number; playlist: number; nightlight: { on: boolean; duration: number; mode: number; targetBrightness: number; remaining: number; }; udp: { send: boolean; receive: boolean; }; liveOverride: number; mainSegment: number; segments: WledSegment[]; } export interface WledSegment { id: number; start: number; stop: number; length: number; grouping: number; spacing: number; offset: number; colors: number[][]; effect: number; effectSpeed: number; effectIntensity: number; palette: number; selected: boolean; reverse: boolean; on: boolean; brightness: number; mirror: boolean; } export interface WledInfo { version: string; versionId: number; ledInfo: { count: number; fps: number; power: number; maxPower: number; maxSegments: number; }; name: string; udpPort: number; isLive: boolean; liveModeSource: string; lm: string; sourceIp: string; wifi: { bssid: string; rssi: number; channel: number; }; fileSystem: { used: number; total: number; presetsJson: number; }; effectsCount: number; palettesCount: number; uptime: number; architecture: string; core: string; freeHeap: number; brand: string; product: string; mac: string; ip: string; } export interface WledEffect { id: number; name: string; } export interface WledPalette { id: number; name: string; } export interface WledDeviceContext { state: WledState; info: WledInfo; effects: WledEffect[]; palettes: WledPalette[]; } export interface WledStateUpdate { on?: boolean; brightness?: number; transition?: number; preset?: number; segment?: WledSegmentUpdate | WledSegmentUpdate[]; } export interface WledSegmentUpdate { id?: number; colors?: number[][] | string; effect?: number; effectSpeed?: number; effectIntensity?: number; palette?: number; on?: boolean; brightness?: number; } export declare enum WledAdapterEventType { DEVICE_CONNECTED = "WledAdapter.Device.Connected", DEVICE_DISCONNECTED = "WledAdapter.Device.Disconnected", DEVICE_STATE_CHANGED = "WledAdapter.Device.StateChanged", DEVICE_ERROR = "WledAdapter.Device.Error" } export interface WledDeviceConnectedEvent { host: string; info: WledInfo; } export interface WledDeviceDisconnectedEvent { host: string; identifier: string; reason?: string; } export interface WledDeviceStateChangedEvent { host: string; state: WledState; previousState?: WledState; } export interface WledDeviceErrorEvent { host: string; error: Error; } export interface RegisteredWledDevice { host: string; identifier: string; connected: boolean; enabled: boolean; context?: WledDeviceContext; lastSeen?: Date; websocket?: WebSocket; } export interface WledPreset { id: number; name: string; } export interface WledMdnsDiscoveredDevice { host: string; name: string; mac?: string; port: number; } export declare enum WledMdnsEventType { DEVICE_DISCOVERED = "WledMdns.Device.Discovered", DEVICE_REMOVED = "WledMdns.Device.Removed" } export interface WledNightlightUpdate { on?: boolean; duration?: number; mode?: number; targetBrightness?: number; } export interface WledUdpSyncUpdate { send?: boolean; receive?: boolean; } export interface WledStateUpdateExtended extends WledStateUpdate { nightlight?: WledNightlightUpdate; udpSync?: WledUdpSyncUpdate; liveOverride?: number; } export interface WledAdapterCallbacks { onDeviceConnected?: (event: WledDeviceConnectedEvent) => void | Promise; onDeviceDisconnected?: (event: WledDeviceDisconnectedEvent) => void | Promise; onDeviceStateChanged?: (event: WledDeviceStateChangedEvent) => void | Promise; onDeviceError?: (event: WledDeviceErrorEvent) => void | Promise; } export interface WledMdnsCallbacks { onDeviceDiscovered?: (device: WledMdnsDiscoveredDevice) => void | Promise; }