import type { ColorInput } from './types/color'; import type { EffectOrInput } from './types/effect'; import type { Program, ProgramOrInput } from './types/program'; import { Zone } from './types/zone'; import type { EverLights } from './v3-sdk'; export class ZoneHelper { constructor(private readonly serial: string, private readonly everLights: EverLights) {} async getInfo(): Promise> { return this.everLights.getZone(this.serial); } async getProgram(): Promise { return this.everLights.getProgram(this.serial); } async startProgram(pattern: ProgramOrInput): Promise>; async startProgram(pattern: ColorInput[], effects?: EffectOrInput[]): Promise>; async startProgram( patternOrProgram: ProgramOrInput | ColorInput[], effects?: EffectOrInput[], ): Promise>; async startProgram( patternOrProgram: ProgramOrInput | ColorInput[], effects: EffectOrInput[] = [], ): Promise> { return this.everLights.startProgram(this.serial, patternOrProgram, effects); } async stopProgram(): Promise { return this.everLights.stopProgram(this.serial); } }