eightsleep
Version:
eightsleep api client
103 lines (102 loc) • 2.62 kB
TypeScript
export declare enum Features {
'WARMING' = "warming",
'COOLING' = "cooling"
}
export declare type LocationType = [number, number];
export declare type PhaseType = {
active: false;
operation: string;
position: number;
} | {
active: true;
level: number;
operation: string;
position: number;
};
export declare type ScheduleType = {
daysUTC: {
friday: boolean;
monday: boolean;
saturday: boolean;
sunday: boolean;
thursday: boolean;
tuesday: boolean;
wednesday: boolean;
};
durationSeconds: number;
enabled: boolean;
startUTCHour: number;
startUTCMinute: number;
};
export declare type ScheduleProfileType = {
enabled: boolean;
startLocalTime: string;
weekDays: {
friday: boolean;
monday: boolean;
saturday: boolean;
sunday: boolean;
thursday: boolean;
tuesday: boolean;
wednesday: boolean;
};
};
export declare type KelvinType = {
active: boolean;
alarms: Array<any>;
currentActivity: string;
currentTargetLevel: number;
level: number;
phases?: PhaseType[];
scheduleProfiles: ScheduleProfileType[];
targetLevels: number[];
};
export declare type DeviceType = {
deviceId?: string;
features?: Features[];
firmwareUpdated?: boolean;
firmwareUpdating?: boolean;
firmwareVersion?: string;
hasWater?: boolean;
hubInfo?: string;
lastHeard?: Date | null;
lastLowWater?: Date | null;
lastPrime?: Date | null;
ledBrightnessLevel?: number;
leftHeatingDuration?: number;
leftHeatingLevel?: number;
leftKelvin?: KelvinType;
leftNowHeating?: boolean;
leftSchedule?: ScheduleType;
leftTargetHeatingLevel?: number;
leftUserId?: string;
location?: LocationType;
mattressInfo?: {
brand?: any | null;
eightMattress?: any | null;
firstUsedDate?: any | null;
};
needsPriming?: boolean;
online?: boolean;
ownerId?: string;
priming?: boolean;
rightHeatingDuration?: number;
rightHeatingLevel?: number;
rightKelvin?: KelvinType;
rightNowHeating?: true;
rightSchedule?: ScheduleType;
rightTargetHeatingLevel?: 50;
rightUserId?: string;
sensorInfo?: {
connected?: boolean;
hwRevision?: string;
label?: string;
lastConnected?: Date | null;
partNumber?: string;
serialNumber?: string;
sku?: string;
skuName?: string;
};
timezone?: string;
};
export default function validateDevice(device: any): DeviceType;