import type { Waveform, MultiZoneApplicationRequest, MultiZoneEffectType, MultiZoneExtendedApplicationRequest, TileEffectType, TileEffectSkyType } from './constants/index.js'; export interface Color { hue: number; saturation: number; brightness: number; kelvin: number; } export interface OffsetRef { current: number; } export type Header = ReturnType; export type StateService = ReturnType; export type StateHostFirmware = ReturnType; export type StateWifiInfo = ReturnType; export type StateWifiFirmware = ReturnType; export type StateVersion = ReturnType; export type StateInfo = ReturnType; export type StateLocation = ReturnType; export type StateGroup = ReturnType; export type SetColor = ReturnType; export type LightState = ReturnType; export type StateHevCycle = ReturnType; export type StateHevCycleConfiguration = ReturnType; export type StateRPower = ReturnType; export type StateDeviceChain = ReturnType; export type DeviceChainDevice = StateDeviceChain['devices'][0]; export type State64 = ReturnType; export type StateZone = ReturnType; export type StateMultiZone = ReturnType; export type StateMultiZoneEffect = ReturnType; export type StateExtendedColorZones = ReturnType; export type StateTileEffect = ReturnType; export type SensorStateAmbientLight = ReturnType; /** * Encodes a LIFX protocol message into a binary format. * * This is the core encoding function that creates properly formatted LIFX LAN protocol messages. * The encoding follows the official LIFX protocol specification with optimized binary operations. */ export declare function encode(tagged: boolean, source: number, target: Uint8Array, resRequired: boolean, ackRequired: boolean, sequence: number, type: number, payload?: Uint8Array): Uint8Array; /** * Encodes a UUID string directly into a byte array at the specified offset. * * Efficiently converts UUID format (e.g., "550e8400-e29b-41d4-a716-446655440000") * into 16 bytes at the target location. Optimized for minimal string allocations. */ export declare function encodeUuidTo(bytes: Uint8Array, offset: number, uuid: string): void; export declare function encodeStringTo(bytes: Uint8Array, offset: number, value: string, byteLength: number): void; export declare function encodeString(value: string, byteLength: number): Uint8Array; export declare function encodeTimestampTo(view: DataView, offset: number, date: Date): void; export declare function decodeStateService(bytes: Uint8Array, offsetRef: OffsetRef): { service: number; port: number; }; export declare function decodeStateHostFirmware(bytes: Uint8Array, offsetRef: OffsetRef): { build: Date; reserved: Uint8Array; version_minor: number; version_major: number; }; export declare function decodeStateWifiInfo(bytes: Uint8Array, offsetRef: OffsetRef): { signal: number; reserved6: Uint8Array; reserved7: Uint8Array; reserved8: Uint8Array; }; export declare function decodeStateWifiFirmware(bytes: Uint8Array, offsetRef: OffsetRef): { build: Date; reserved6: Uint8Array; version_minor: number; version_major: number; }; export declare function decodeStatePower(bytes: Uint8Array, offsetRef: OffsetRef): number; export declare function decodeStateLabel(bytes: Uint8Array, offsetRef: OffsetRef): string; export declare function decodeStateVersion(bytes: Uint8Array, offsetRef: OffsetRef): { vendor: number; product: number; }; export declare function decodeStateInfo(bytes: Uint8Array, offsetRef: OffsetRef): { time: Date; uptime: Date; downtime: Date; }; export declare function decodeStateLocation(bytes: Uint8Array, offsetRef: OffsetRef): { location: Uint8Array; label: string; updated_at: Date; }; export declare function decodeStateGroup(bytes: Uint8Array, offsetRef: OffsetRef): { group: string; label: string; updated_at: Date; }; export declare function decodeEchoResponse(bytes: Uint8Array, offsetRef: OffsetRef): Uint8Array; export declare function decodeStateUnhandled(bytes: Uint8Array, offsetRef: OffsetRef): number; export declare function decodeSetColor(bytes: Uint8Array, offsetRef: OffsetRef): { reserved: Uint8Array; hue: number; saturation: number; brightness: number; kelvin: number; duration: number; }; export declare function encodeSetColor(hue: number, saturation: number, brightness: number, kelvin: number, duration: number): Uint8Array; export declare function encodeSetPower(power: number | boolean): Uint8Array; export declare function encodeSetLocation(location: Uint8Array | string, label: string, updatedAt: Date): Uint8Array; export declare function encodeSetGroup(group: Uint8Array | string, label: string, updatedAt: Date): Uint8Array; export declare function encodeEchoRequest(echoing: Uint8Array): Uint8Array; export declare function encodeSetWaveform(transient: boolean, hue: number, saturation: number, brightness: number, kelvin: number, period: number, cycles: number, skewRatio: number, waveform: Waveform): Uint8Array; export declare function encodeSetLightPower(level: number | boolean, duration: number): Uint8Array; export declare function encodeSetWaveformOptional(transient: boolean, hue: number, saturation: number, brightness: number, kelvin: number, period: number, cycles: number, skewRatio: number, waveform: Waveform, setHue: boolean, setSaturation: boolean, setBrightness: boolean, setKelvin: boolean): Uint8Array; export declare function encodeSetInfrared(brightness: number): Uint8Array; export declare function encodeSetHevCycle(enable: boolean, durationSeconds: number): Uint8Array; export declare function encodeSetHevCycleConfiguration(indication: boolean, durationSeconds: number): Uint8Array; export declare function encodeGetRPower(relayIndex: number): Uint8Array; export declare function encodeSetRPower(relayIndex: number, level: number): Uint8Array; export declare function encodeGet64(tileIndex: number, length: number, x: number, y: number, width: number): Uint8Array; export declare function encodeGetColorZones(startIndex: number, endIndex: number): Uint8Array; export declare function encodeSetColorZones(startIndex: number, endIndex: number, hue: number, saturation: number, brightness: number, kelvin: number, duration: number, apply: MultiZoneApplicationRequest): Uint8Array; export declare function encodeSetMultiZoneEffect(instanceid: number, effectType: MultiZoneEffectType, speed: number, duration: bigint, parameters: Uint8Array): Uint8Array; export declare function encodeSetExtendedColorZones(duration: number, apply: MultiZoneExtendedApplicationRequest, zoneIndex: number, colorsCount: number, colors: Color[]): Uint8Array; export declare function encodeSetUserPosition(tileIndex: number, userX: number, userY: number): Uint8Array; export declare function encodeSet64(tileIndex: number, length: number, x: number, y: number, width: number, duration: number, colors: Color[]): Uint8Array; export declare function encodeGetTileEffect(): Uint8Array; export declare function encodeSetTileEffect(instanceid: number, effectType: TileEffectType, speed: number, duration: bigint, skyType: TileEffectSkyType, cloudSaturationMin: number, paletteCount: number, palette: Color[]): Uint8Array; export declare function decodeLightState(bytes: Uint8Array, offsetRef: OffsetRef): { hue: number; saturation: number; brightness: number; kelvin: number; power: number; label: string; reserved2: Uint8Array; reserved8: Uint8Array; }; export declare function decodeStateLightPower(bytes: Uint8Array, offsetRef: OffsetRef): number; export declare function decodeStateInfrared(bytes: Uint8Array, offsetRef: OffsetRef): number; export declare function decodeStateHevCycle(bytes: Uint8Array, offsetRef: OffsetRef): { duration_s: number; remaining_s: number; last_power: boolean; }; export declare function decodeStateHevCycleConfiguration(bytes: Uint8Array, offsetRef: OffsetRef): { indication: number; duration_s: number; }; export declare function decodeStateLastHevCycleResult(bytes: Uint8Array, offsetRef: OffsetRef): number; export declare function decodeStateRPower(bytes: Uint8Array, offsetRef: OffsetRef): { relay_index: number; level: number; }; export declare function decodeStateDeviceChain(bytes: Uint8Array, offsetRef: OffsetRef): { start_index: number; devices: { accel_meas_x: number; accel_meas_y: number; accel_meas_z: number; reserved6: Uint8Array; user_x: number; user_y: number; width: number; height: number; reserved7: Uint8Array; device_version_vendor: number; device_version_product: number; reserved8: Uint8Array; firmware_build: Date; reserved9: Uint8Array; firmware_version_minor: number; firmware_version_major: number; reserved10: Uint8Array; }[]; tile_devices_count: number; }; export declare function decodeState64(bytes: Uint8Array, offsetRef: OffsetRef): { tile_index: number; reserved6: Uint8Array; x: number; y: number; width: number; colors: Color[]; }; export declare function decodeStateZone(bytes: Uint8Array, offsetRef: OffsetRef): { zones_count: number; zone_index: number; hue: number; saturation: number; brightness: number; kelvin: number; }; export declare function decodeStateMultiZone(bytes: Uint8Array, offsetRef: OffsetRef): { zones_count: number; zone_index: number; colors: Color[]; }; export declare function decodeStateMultiZoneEffect(bytes: Uint8Array, offsetRef: OffsetRef): { instanceid: number; type: number; reserved6: Uint8Array; speed: number; duration: bigint; reserved7: Uint8Array; reserved8: Uint8Array; parameters: Uint8Array; }; export declare function decodeStateExtendedColorZones(bytes: Uint8Array, offsetRef: OffsetRef): { zones_count: number; zone_index: number; colors_count: number; colors: Color[]; }; export declare function decodeStateTileEffect(bytes: Uint8Array, offsetRef: OffsetRef): { reserved0: number; instanceid: number; type: number; speed: number; duration: bigint; reserved1: Uint8Array; reserved2: Uint8Array; skyType: number; reserved3: Uint8Array; cloudSaturationMin: number; reserved4: Uint8Array; cloudSaturationMax: number; reserved5: Uint8Array; palette_count: number; palette: Color[]; }; export declare function decodeSensorStateAmbientLight(bytes: Uint8Array, offsetRef: OffsetRef): { lux: number; }; export declare const getHeaderSize: (view: DataView, offset?: number) => number; export declare const getHeaderFlags: (view: DataView, offset?: number) => number; export declare const getHeaderTagged: (view: DataView, offset?: number) => boolean; export declare const getHeaderSource: (view: DataView, offset?: number) => number; export declare const getHeaderTarget: (bytes: Uint8Array, offset?: number) => Uint8Array; export declare const getHeaderResponseFlags: (view: DataView, offset?: number) => number; export declare const getHeaderResponseRequired: (responseFlags: number) => boolean; export declare const getHeaderAcknowledgeRequired: (responseFlags: number) => boolean; export declare const getHeaderType: (view: DataView, offset?: number) => number; export declare const getHeaderSequence: (view: DataView, offset?: number) => number; export declare const getPayload: (bytes: Uint8Array, offset?: number) => Uint8Array; export declare function decodeHeader(bytes: Uint8Array, offset?: number): { size: number; protocol: number; addressable: boolean; tagged: boolean; origin: number; source: number; target: Uint8Array; reserved1: () => Uint8Array; reserved2: () => Uint8Array; res_required: boolean; ack_required: boolean; reserved3: number; reserved4: () => Uint8Array; sequence: number; reserved5: () => Uint8Array; type: number; }; //# sourceMappingURL=encoding.d.ts.map