UNPKG

magichome-platform

Version:

discover, control, and receive status for magichome devices

124 lines 3.89 kB
import { ProtoDevice, LEDStateRGB, DeviceMetaData } from 'magichome-core'; import { BaseController } from '../core/baseController'; import { InterpolationType } from '../animation/animationUtils'; export * from 'magichome-core'; export declare const DefaultDevice: { ipAddress: string; uniqueId: string; modelNumber: string; }; /** * Device API object * @param byteOrder - The order of the bytes in the command * @param description - A description of the device * @param hasColor - Whether the device has color * @param hasCCT - Whether the device has CCT * @param hasBrightness - Whether the device has brightness * @param isEightByteProtocol - Whether the device uses an 8 byte protocol * @param needsPowerCommand - Whether the device needs a power command * @param simultaneousCCT - Whether the device can handle CCT and RGB commands simultaneously */ export type DeviceAPI = { byteOrder: string[]; description: string; hasColor: boolean; hasCCT: boolean; hasBrightness: boolean; isEightByteProtocol: boolean; needsPowerCommand: boolean | null; simultaneousCCT: boolean; }; export type FullDeviceInformation = { deviceAPI: DeviceAPI; protoDevice: ProtoDevice; ledStateRGB: LEDStateRGB; deviceMetaData: DeviceMetaData; }; export interface IControllerInformation { displayName: string; lastSeenDate: number; } export interface ColorHSV { hue: number; saturation: number; value: number; } export interface ColorTB { temperature: number; brightness: number; } export interface IAnimationLoop { name: string; pattern: IAnimationFrame[]; accessoryOffsetMS: number; } export interface IAnimationFrame { colorStart?: IAnimationCommand; colorTarget: IAnimationCommand; transitionTimeMS: number | number[]; durationAtTargetMS?: number | number[]; chancePercent: number; reSyncMs?: number | number[]; } export interface IAnimationColorRange { red: number | number[]; green: number | number[]; blue: number | number[]; warmWhite: number | number[]; coldWhite: number | number[]; } export interface IAnimationColorStep { red: number; green: number; blue: number; warmWhite: number; coldWhite: number; } export interface IAnimationSequenceRange { startColor?: IAnimationColorRange; targetColor: IAnimationColorRange; transitionDurationMS: number | number[]; durationAtTargetMS: number | number[]; reverseTransitionDurationMS?: number | number[]; interpolationType: InterpolationType; skipChance: number; } export interface IAnimationSequenceStep { startColor?: IAnimationColorStep; targetColor: IAnimationColorStep; transitionDurationMS: number; durationAtTargetMS: number; reverseTransitionDurationMS?: number; interpolationType: InterpolationType; skipChance: number; } export declare enum AnimationStepKey { ALL = "all" } export type AnimationStepKeys = AnimationStepKey | BaseController["id"]; export interface IAnimationBlueprint { readonly name: string; readonly priority: number; readonly syncSequenceTimings: boolean; readonly syncSequenceColor: boolean; readonly lightOffsetDurationMS: number; readonly animationSequences: IAnimationSequenceRange[]; } export type IFailedDeviceProps = ProtoDevice & { latestScanTimestamp: number; }; export interface IAnimationCommand { RGB?: IAnimationRGB; CCT?: IAnimationCCT; colorMask?: number; } export interface IAnimationRGB { red: number | number[]; green: number | number[]; blue: number | number[]; } export interface IAnimationCCT { warmWhite: number | number[]; coldWhite: number | number[]; } //# sourceMappingURL=types.d.ts.map