UNPKG

@felixgeelhaar/govee-api-client

Version:

Enterprise-grade TypeScript client library for the Govee Developer REST API

66 lines 3.05 kB
import { Logger } from 'pino'; import { GoveeDevice } from './domain/entities/GoveeDevice'; import { DeviceState } from './domain/entities/DeviceState'; import { Command } from './domain/entities/Command'; import { ColorRgb, ColorTemperature, Brightness } from './domain/value-objects'; import { RetryPolicy } from './infrastructure/retry'; export interface GoveeClientConfig { apiKey: string; timeout?: number; rateLimit?: number; logger?: Logger; enableRetries?: boolean; retryPolicy?: 'development' | 'testing' | 'production' | 'custom' | RetryPolicy; } export declare class GoveeClient { private readonly controlService; private readonly logger; constructor(config: GoveeClientConfig); private validateConfig; getDevices(): Promise<GoveeDevice[]>; getDeviceState(deviceId: string, model: string): Promise<DeviceState>; getControllableDevices(): Promise<GoveeDevice[]>; getRetrievableDevices(): Promise<GoveeDevice[]>; findDeviceByName(deviceName: string): Promise<GoveeDevice | undefined>; findDevicesByModel(model: string): Promise<GoveeDevice[]>; sendCommand(deviceId: string, model: string, command: Command): Promise<void>; turnOn(deviceId: string, model: string): Promise<void>; turnOff(deviceId: string, model: string): Promise<void>; setBrightness(deviceId: string, model: string, brightness: Brightness): Promise<void>; setColor(deviceId: string, model: string, color: ColorRgb): Promise<void>; setColorTemperature(deviceId: string, model: string, colorTemperature: ColorTemperature): Promise<void>; turnOnWithBrightness(deviceId: string, model: string, brightness: Brightness): Promise<void>; turnOnWithColor(deviceId: string, model: string, color: ColorRgb, brightness?: Brightness): Promise<void>; turnOnWithColorTemperature(deviceId: string, model: string, colorTemperature: ColorTemperature, brightness?: Brightness): Promise<void>; isDeviceOnline(deviceId: string, model: string): Promise<boolean>; isDevicePoweredOn(deviceId: string, model: string): Promise<boolean>; getRateLimiterStats(): { currentRequests: number; maxRequests: number; queueSize: number; windowMs: number; utilizationPercent: number; canExecuteImmediately: boolean; nextAvailableSlot: number; }; getRetryMetrics(): Readonly<import("./infrastructure/retry").RetryMetrics> | null; getServiceStats(): { rateLimiter: { currentRequests: number; maxRequests: number; queueSize: number; windowMs: number; utilizationPercent: number; canExecuteImmediately: boolean; nextAvailableSlot: number; }; retries: Readonly<import("./infrastructure/retry").RetryMetrics> | null; configuration: { enableRetries: boolean; rateLimit: number; }; }; resetRetryMetrics(): void; isRetryEnabled(): boolean; } //# sourceMappingURL=GoveeClient.d.ts.map