dirigera
Version:
A TypeScript client for IKEA's DIRIGERA smart home hub
332 lines (331 loc) • 13.9 kB
TypeScript
import type { Home } from './types/Home';
import type { Event } from './types/event/Event';
export type DirigeraClient = Awaited<ReturnType<typeof createDirigeraClient>>;
export type { AirPurifier } from './types/device/AirPurifier';
export type { Blinds } from './types/device/Blinds';
export type { Capabilities } from './types/Capabilities';
export type { Controller } from './types/device/Controller';
export type { Device } from './types/device/Device';
export type { DeviceSet } from './types/DeviceSet';
export type { EnvironmentSensor } from './types/device/EnvironmentSensor';
export type { Home } from './types/Home';
export type { Hub } from './types/device/Hub';
export type { Light } from './types/device/Light';
export type { LightSensor } from './types/device/LightSensor';
export type { MotionSensor } from './types/device/MotionSensor';
export type { Music } from './types/Music';
export type { OpenCloseSensor } from './types/device/OpenCloseSensor';
export type { Outlet } from './types/device/Outlet';
export type { Repeater } from './types/device/Repeater';
export type { Room } from './types/Room';
export type { Scene } from './types/Scene';
export type { Speaker } from './types/device/Speaker';
export type { User } from './types/User';
export type { WaterSensor } from './types/device/WaterSensor';
export type { Event } from './types/event/Event';
export type { DeviceAddedEvent } from './types/event/DeviceAddedEvent';
export type { DeviceConfigurationChangedEvent } from './types/event/DeviceConfigurationChangedEvent';
export type { DeviceDiscoveredEvent } from './types/event/DeviceDiscoveredEvent';
export type { DeviceRemovedEvent } from './types/event/DeviceRemovedEvent';
export type { DeviceSetCreatedEvent } from './types/event/DeviceSetCreatedEvent';
export type { DeviceSetDeletedEvent } from './types/event/DeviceSetDeletedEvent';
export type { DeviceSetUpdatedEvent } from './types/event/DeviceSetUpdatedEvent';
export type { DeviceStateChangedEvent } from './types/event/DeviceStateChangedEvent';
export type { MusicUpdatedEvent } from './types/event/MusicUpdatedEvent';
export type { PingEvent } from './types/event/PingEvent';
export type { PongEvent } from './types/event/PongEvent';
export type { RoomCreatedEvent } from './types/event/RoomCreatedEvent';
export type { RoomDeletedEvent } from './types/event/RoomDeletedEvent';
export type { RoomUpdatedEvent } from './types/event/RoomUpdatedEvent';
export type { SceneCompletedEvent } from './types/event/SceneCompletedEvent';
export type { SceneCreatedEvent } from './types/event/SceneCreatedEvent';
export type { SceneDeletedEvent } from './types/event/SceneDeletedEvent';
export type { SceneTriggeredEvent } from './types/event/SceneTriggeredEvent';
export type { SceneUpdatedEvent } from './types/event/SceneUpdatedEvent';
export type { TerminationEvent } from './types/event/TerminationEvent';
export declare function createDirigeraClient({ gatewayIP, accessToken, rejectUnauthorized, }?: {
gatewayIP?: string;
accessToken?: string;
rejectUnauthorized?: boolean;
}): Promise<{
authenticate({ verbose }?: {
verbose?: boolean;
}): Promise<string>;
home(): Promise<Home>;
hub: {
status(): Promise<import("./types/device/Hub").Hub>;
checkFirmwareUpdate(): Promise<void>;
installFirmwareUpdate(): Promise<void>;
};
devices: {
list(): Promise<import("./types/device/Device").Device[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/Device").Device>;
setCustomName({ id, customName, }: {
id: string;
customName: string;
}): Promise<void>;
setAttributes({ id, attributes, transitionTime, }: {
id: string;
attributes: Partial<import("./types/device/Device").Device["attributes"]>;
transitionTime?: number;
}): Promise<void>;
startIdentifying({ id }: {
id: string;
}): Promise<void>;
stopIdentifying({ id }: {
id: string;
}): Promise<void>;
};
lights: {
list(): Promise<import("./types/device/Light").Light[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/Light").Light>;
setIsOn({ id, isOn }: {
id: string;
isOn: boolean;
}): Promise<void>;
setLightLevel({ id, lightLevel, transitionTime, }: {
id: string;
lightLevel: number;
transitionTime?: number;
}): Promise<void>;
setLightTemperature({ id, colorTemperature, transitionTime, }: {
id: string;
colorTemperature: number;
transitionTime?: number;
}): Promise<void>;
setLightColor({ id, colorHue, colorSaturation, transitionTime, }: {
id: string;
colorHue: number;
colorSaturation: number;
transitionTime?: number;
}): Promise<void>;
setStartupOnOff({ id, startupOnOff, }: {
id: string;
startupOnOff: import("./types/device/Light").Light["attributes"]["startupOnOff"];
}): Promise<void>;
};
outlets: {
list(): Promise<import("./types/device/Outlet").Outlet[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/Outlet").Outlet>;
setIsOn({ id, isOn }: {
id: string;
isOn: boolean;
}): Promise<void>;
setStartupOnOff({ id, startupOnOff, }: {
id: string;
startupOnOff: import("./types/device/Outlet").Outlet["attributes"]["startupOnOff"];
}): Promise<void>;
setStatusLight({ id, statusLight, }: {
id: string;
statusLight: import("./types/device/Outlet").Outlet["attributes"]["statusLight"];
}): Promise<void>;
setChildLock({ id, childLock, }: {
id: string;
childLock: import("./types/device/Outlet").Outlet["attributes"]["childLock"];
}): Promise<void>;
resetEnergyConsumption({ id }: {
id: string;
}): Promise<void>;
};
controllers: {
list(): Promise<import("./types/device/Controller").Controller[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/Controller").Controller>;
};
speakers: {
list(): Promise<import("./types/device/Speaker").Speaker[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/Speaker").Speaker>;
setVolume({ id, volume }: {
id: string;
volume: number;
}): Promise<void>;
setPlayback({ id, playback, }: {
id: string;
playback: import("./types/device/Speaker").Speaker["attributes"]["playback"];
}): Promise<void>;
};
blinds: {
list(): Promise<import("./types/device/Blinds").Blinds[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/Blinds").Blinds>;
setCurrentLevel({ id, blindsCurrentLevel, }: {
id: string;
blindsCurrentLevel: number;
}): Promise<void>;
setTargetLevel({ id, blindsTargetLevel, }: {
id: string;
blindsTargetLevel: number;
}): Promise<void>;
setState({ id, blindsState, }: {
id: string;
blindsState: import("./types/device/Blinds").Blinds["attributes"]["blindsState"];
}): Promise<void>;
};
airPurifiers: {
list(): Promise<import("./types/device/AirPurifier").AirPurifier[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/AirPurifier").AirPurifier>;
setFanMode({ id, fanMode, }: {
id: string;
fanMode: import("./types/device/AirPurifier").AirPurifier["attributes"]["fanMode"];
}): Promise<void>;
setMotorState({ id, motorState, }: {
id: string;
motorState: import("./types/device/AirPurifier").AirPurifier["attributes"]["motorState"];
}): Promise<void>;
setChildLock({ id, childLock, }: {
id: string;
childLock: import("./types/device/AirPurifier").AirPurifier["attributes"]["childLock"];
}): Promise<void>;
setStatusLight({ id, statusLight, }: {
id: string;
statusLight: import("./types/device/AirPurifier").AirPurifier["attributes"]["statusLight"];
}): Promise<void>;
};
repeaters: {
list(): Promise<import("./types/device/Repeater").Repeater[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/Repeater").Repeater>;
};
motionSensors: {
list(): Promise<import("./types/device/MotionSensor").MotionSensor[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/MotionSensor").MotionSensor>;
setOnDuration({ id, onDuration, }: {
id: string;
onDuration: import("./types/device/MotionSensor").MotionSensor["attributes"]["sensorConfig"]["onDuration"];
}): Promise<void>;
setScheduleOn({ id, scheduleOn, }: {
id: string;
scheduleOn: import("./types/device/MotionSensor").MotionSensor["attributes"]["sensorConfig"]["scheduleOn"];
}): Promise<void>;
setSchedule({ id, schedule, }: {
id: string;
schedule: import("./types/device/MotionSensor").MotionSensor["attributes"]["sensorConfig"]["schedule"];
}): Promise<void>;
};
lightSensors: {
list(): Promise<import("./types/device/LightSensor").LightSensor[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/LightSensor").LightSensor>;
};
environmentSensors: {
list(): Promise<import("./types/device/EnvironmentSensor").EnvironmentSensor[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/EnvironmentSensor").EnvironmentSensor>;
};
openCloseSensors: {
list(): Promise<import("./types/device/OpenCloseSensor").OpenCloseSensor[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/OpenCloseSensor").OpenCloseSensor>;
};
waterSensors: {
list(): Promise<import("./types/device/WaterSensor").WaterSensor[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/WaterSensor").WaterSensor>;
};
deviceSets: {
list(): Promise<import("./types/DeviceSet").DeviceSet[]>;
create({ name, icon }: Pick<import("./types/DeviceSet").DeviceSet, "name" | "icon">): Promise<{
id: string;
}>;
delete({ id }: {
id: string;
}): Promise<void>;
update({ id, name, icon }: import("./types/DeviceSet").DeviceSet): Promise<void>;
updateConfiguration({ id, deviceIds, roomId, remoteLinkIds, }: {
id: string;
deviceIds: string[];
roomId?: string;
remoteLinkIds?: string[];
}): Promise<void>;
setIsOn({ id, isOn }: {
id: string;
isOn: boolean;
}): Promise<void>;
setAttributes({ id, attributes, transitionTime, }: {
id: string;
attributes: Partial<import("./types/device/Device").Device["attributes"]>;
transitionTime?: number;
}): Promise<void>;
};
rooms: {
list(): Promise<import("./types/Room").Room[]>;
get({ id }: {
id: string;
}): Promise<import("./types/Room").Room>;
create({ name, icon, color }: Pick<import("./types/Room").Room, "name" | "icon" | "color">): Promise<{
id: string;
}>;
delete({ id }: {
id: string;
}): Promise<void>;
update({ id, name, icon, color }: import("./types/Room").Room): Promise<void>;
moveDevices({ id, deviceIds }: {
id: string;
deviceIds: string[];
}): Promise<void>;
setIsOn({ id, deviceType, isOn, }: {
id: string;
deviceType?: import("./types/device/Device").Device["deviceType"];
isOn: boolean;
}): Promise<void>;
setAttributes({ id, deviceType, attributes, transitionTime, }: {
id: string;
deviceType?: import("./types/device/Device").Device["deviceType"];
attributes: Partial<import("./types/device/Device").Device["attributes"]>;
transitionTime?: number;
}): Promise<void>;
};
scenes: {
list(): Promise<import("./types/Scene").Scene[]>;
get({ id }: {
id: string;
}): Promise<import("./types/Scene").Scene>;
trigger({ id }: {
id: string;
}): Promise<void>;
undo({ id }: {
id: string;
}): Promise<void>;
create({ info, type, actions, triggers, }: Pick<import("./types/Scene").Scene, "info" | "type" | "actions" | "triggers">): Promise<{
id: string;
}>;
delete({ id }: {
id: string;
}): Promise<void>;
update({ id, info, type, actions, triggers, }: Pick<import("./types/Scene").Scene, "id" | "info" | "type" | "actions" | "triggers">): Promise<void>;
};
music: {
get(): Promise<import("./types/Music").Music>;
};
users: {
list(): Promise<import("./types/User").User[]>;
getCurrentUser(): Promise<import("./types/User").User>;
setCurrentUserName({ name }: {
name: string;
}): Promise<void>;
delete({ id }: {
id: string;
}): Promise<void>;
};
startListeningForUpdates(callback: (updateEvent: Event) => void): void;
stopListeningForUpdates(): void;
}>;