UNPKG

dirigera

Version:

A TypeScript client for IKEA's DIRIGERA smart home hub

352 lines (351 loc) 15.3 kB
import type { Home } from './types/Home.ts'; import type { Event } from './types/event/Event.ts'; export type DirigeraClient = Awaited<ReturnType<typeof createDirigeraClient>>; export type { AirPurifier } from './types/device/AirPurifier.ts'; export type { Blinds } from './types/device/Blinds.ts'; export type { Capabilities } from './types/Capabilities.ts'; export type { Controller } from './types/device/Controller.ts'; export type { Device } from './types/device/Device.ts'; export type { DeviceSet } from './types/DeviceSet.ts'; export type { EnvironmentSensor } from './types/device/EnvironmentSensor.ts'; export type { Home } from './types/Home.ts'; export type { Hub } from './types/device/Hub.ts'; export type { Light } from './types/device/Light.ts'; export type { LightSensor } from './types/device/LightSensor.ts'; export type { MotionSensor } from './types/device/MotionSensor.ts'; export type { Music } from './types/Music.ts'; export type { OccupancySensor } from './types/device/OccupancySensor.ts'; export type { OpenCloseSensor } from './types/device/OpenCloseSensor.ts'; export type { Outlet } from './types/device/Outlet.ts'; export type { Repeater } from './types/device/Repeater.ts'; export type { Room } from './types/Room.ts'; export type { Scene } from './types/Scene.ts'; export type { Speaker } from './types/device/Speaker.ts'; export type { User } from './types/User.ts'; export type { WaterSensor } from './types/device/WaterSensor.ts'; export type { Event } from './types/event/Event.ts'; export type { DeviceAddedEvent } from './types/event/DeviceAddedEvent.ts'; export type { DeviceConfigurationChangedEvent } from './types/event/DeviceConfigurationChangedEvent.ts'; export type { DeviceDiscoveredEvent } from './types/event/DeviceDiscoveredEvent.ts'; export type { DeviceRemovedEvent } from './types/event/DeviceRemovedEvent.ts'; export type { DeviceSetCreatedEvent } from './types/event/DeviceSetCreatedEvent.ts'; export type { DeviceSetDeletedEvent } from './types/event/DeviceSetDeletedEvent.ts'; export type { DeviceSetUpdatedEvent } from './types/event/DeviceSetUpdatedEvent.ts'; export type { DeviceStateChangedEvent } from './types/event/DeviceStateChangedEvent.ts'; export type { MusicUpdatedEvent } from './types/event/MusicUpdatedEvent.ts'; export type { PingEvent } from './types/event/PingEvent.ts'; export type { PongEvent } from './types/event/PongEvent.ts'; export type { RemotePressEvent } from './types/event/RemotePressEvent.ts'; export type { RoomCreatedEvent } from './types/event/RoomCreatedEvent.ts'; export type { RoomDeletedEvent } from './types/event/RoomDeletedEvent.ts'; export type { RoomUpdatedEvent } from './types/event/RoomUpdatedEvent.ts'; export type { SceneCompletedEvent } from './types/event/SceneCompletedEvent.ts'; export type { SceneCreatedEvent } from './types/event/SceneCreatedEvent.ts'; export type { SceneDeletedEvent } from './types/event/SceneDeletedEvent.ts'; export type { SceneTriggeredEvent } from './types/event/SceneTriggeredEvent.ts'; export type { SceneUpdatedEvent } from './types/event/SceneUpdatedEvent.ts'; export type { TerminationEvent } from './types/event/TerminationEvent.ts'; 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.ts").Hub>; checkFirmwareUpdate(): Promise<void>; installFirmwareUpdate(): Promise<void>; }; devices: { list(): Promise<import("./types/device/Device.ts").Device[]>; get({ id }: { id: string; }): Promise<import("./types/device/Device.ts").Device>; setCustomName({ id, customName, }: { id: string; customName: string; }): Promise<void>; setAttributes({ id, attributes, transitionTime, }: { id: string; attributes: Partial<import("./types/device/Device.ts").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.ts").Light[]>; get({ id }: { id: string; }): Promise<import("./types/device/Light.ts").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.ts").Light["attributes"]["startupOnOff"]; }): Promise<void>; }; outlets: { list(): Promise<import("./types/device/Outlet.ts").Outlet[]>; get({ id }: { id: string; }): Promise<import("./types/device/Outlet.ts").Outlet>; setIsOn({ id, isOn }: { id: string; isOn: boolean; }): Promise<void>; setStartupOnOff({ id, startupOnOff, }: { id: string; startupOnOff: import("./types/device/Outlet.ts").Outlet["attributes"]["startupOnOff"]; }): Promise<void>; setStatusLight({ id, statusLight, }: { id: string; statusLight: import("./types/device/Outlet.ts").Outlet["attributes"]["statusLight"]; }): Promise<void>; setChildLock({ id, childLock, }: { id: string; childLock: import("./types/device/Outlet.ts").Outlet["attributes"]["childLock"]; }): Promise<void>; resetEnergyConsumption({ id }: { id: string; }): Promise<void>; }; controllers: { list(): Promise<import("./types/device/Controller.ts").Controller[]>; get({ id }: { id: string; }): Promise<import("./types/device/Controller.ts").Controller>; setControlMode({ id, controlMode, }: { id: string; controlMode: import("./types/device/Controller.ts").GenericSwitch["attributes"]["controlMode"]; }): Promise<void>; }; speakers: { list(): Promise<import("./types/device/Speaker.ts").Speaker[]>; get({ id }: { id: string; }): Promise<import("./types/device/Speaker.ts").Speaker>; setVolume({ id, volume }: { id: string; volume: number; }): Promise<void>; setPlayback({ id, playback, }: { id: string; playback: import("./types/device/Speaker.ts").Speaker["attributes"]["playback"]; }): Promise<void>; }; blinds: { list(): Promise<import("./types/device/Blinds.ts").Blinds[]>; get({ id }: { id: string; }): Promise<import("./types/device/Blinds.ts").Blinds>; setTargetLevel({ id, blindsTargetLevel, }: { id: string; blindsTargetLevel: number; }): Promise<void>; setState({ id, blindsState, }: { id: string; blindsState: import("./types/device/Blinds.ts").Blinds["attributes"]["blindsState"]; }): Promise<void>; }; airPurifiers: { list(): Promise<import("./types/device/AirPurifier.ts").AirPurifier[]>; get({ id }: { id: string; }): Promise<import("./types/device/AirPurifier.ts").AirPurifier>; setFanMode({ id, fanMode, }: { id: string; fanMode: import("./types/device/AirPurifier.ts").AirPurifier["attributes"]["fanMode"]; }): Promise<void>; setMotorState({ id, motorState, }: { id: string; motorState: import("./types/device/AirPurifier.ts").AirPurifier["attributes"]["motorState"]; }): Promise<void>; setChildLock({ id, childLock, }: { id: string; childLock: import("./types/device/AirPurifier.ts").AirPurifier["attributes"]["childLock"]; }): Promise<void>; setStatusLight({ id, statusLight, }: { id: string; statusLight: import("./types/device/AirPurifier.ts").AirPurifier["attributes"]["statusLight"]; }): Promise<void>; }; repeaters: { list(): Promise<import("./types/device/Repeater.ts").Repeater[]>; get({ id }: { id: string; }): Promise<import("./types/device/Repeater.ts").Repeater>; }; motionSensors: { list(): Promise<import("./types/device/MotionSensor.ts").MotionSensor[]>; get({ id }: { id: string; }): Promise<import("./types/device/MotionSensor.ts").MotionSensor>; setOnDuration({ id, onDuration, }: { id: string; onDuration: import("./types/device/MotionSensor.ts").MotionSensor["attributes"]["sensorConfig"]["onDuration"]; }): Promise<void>; setScheduleOn({ id, scheduleOn, }: { id: string; scheduleOn: import("./types/device/MotionSensor.ts").MotionSensor["attributes"]["sensorConfig"]["scheduleOn"]; }): Promise<void>; setSchedule({ id, schedule, }: { id: string; schedule: import("./types/device/MotionSensor.ts").MotionSensor["attributes"]["sensorConfig"]["schedule"]; }): Promise<void>; }; occupancySensors: { list(): Promise<import("./types/device/OccupancySensor.ts").OccupancySensor[]>; get({ id }: { id: string; }): Promise<import("./types/device/OccupancySensor.ts").OccupancySensor>; setOnDuration({ id, onDuration, }: { id: string; onDuration: import("./types/device/OccupancySensor.ts").OccupancySensor["attributes"]["sensorConfig"]["onDuration"]; }): Promise<void>; setScheduleOn({ id, scheduleOn, }: { id: string; scheduleOn: import("./types/device/OccupancySensor.ts").OccupancySensor["attributes"]["sensorConfig"]["scheduleOn"]; }): Promise<void>; setSchedule({ id, schedule, }: { id: string; schedule: import("./types/device/OccupancySensor.ts").OccupancySensor["attributes"]["sensorConfig"]["schedule"]; }): Promise<void>; }; lightSensors: { list(): Promise<import("./types/device/LightSensor.ts").LightSensor[]>; get({ id }: { id: string; }): Promise<import("./types/device/LightSensor.ts").LightSensor>; }; environmentSensors: { list(): Promise<import("./types/device/EnvironmentSensor.ts").EnvironmentSensor[]>; get({ id }: { id: string; }): Promise<import("./types/device/EnvironmentSensor.ts").EnvironmentSensor>; }; openCloseSensors: { list(): Promise<import("./types/device/OpenCloseSensor.ts").OpenCloseSensor[]>; get({ id }: { id: string; }): Promise<import("./types/device/OpenCloseSensor.ts").OpenCloseSensor>; }; waterSensors: { list(): Promise<import("./types/device/WaterSensor.ts").WaterSensor[]>; get({ id }: { id: string; }): Promise<import("./types/device/WaterSensor.ts").WaterSensor>; }; deviceSets: { list(): Promise<import("./types/DeviceSet.ts").DeviceSet[]>; create({ name, icon }: Pick<import("./types/DeviceSet.ts").DeviceSet, "name" | "icon">): Promise<{ id: string; }>; delete({ id }: { id: string; }): Promise<void>; update({ id, name, icon }: import("./types/DeviceSet.ts").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.ts").Device["attributes"]>; transitionTime?: number; }): Promise<void>; }; rooms: { list(): Promise<import("./types/Room.ts").Room[]>; get({ id }: { id: string; }): Promise<import("./types/Room.ts").Room>; create({ name, icon, color }: Pick<import("./types/Room.ts").Room, "name" | "icon" | "color">): Promise<{ id: string; }>; delete({ id }: { id: string; }): Promise<void>; update({ id, name, icon, color }: import("./types/Room.ts").Room): Promise<void>; moveDevices({ id, deviceIds }: { id: string; deviceIds: string[]; }): Promise<void>; setIsOn({ id, deviceType, isOn, }: { id: string; deviceType?: import("./types/device/Device.ts").Device["deviceType"]; isOn: boolean; }): Promise<void>; setAttributes({ id, deviceType, attributes, transitionTime, }: { id: string; deviceType?: import("./types/device/Device.ts").Device["deviceType"]; attributes: Partial<import("./types/device/Device.ts").Device["attributes"]>; transitionTime?: number; }): Promise<void>; }; scenes: { list(): Promise<import("./types/Scene.ts").Scene[]>; get({ id }: { id: string; }): Promise<import("./types/Scene.ts").Scene>; trigger({ id }: { id: string; }): Promise<void>; undo({ id }: { id: string; }): Promise<void>; create({ info, type, actions, triggers, }: Pick<import("./types/Scene.ts").Scene, "info" | "type" | "actions" | "triggers">): Promise<{ id: string; }>; delete({ id }: { id: string; }): Promise<void>; update({ id, info, type, actions, triggers, }: Pick<import("./types/Scene.ts").Scene, "id" | "info" | "type" | "actions" | "triggers">): Promise<void>; }; music: { get(): Promise<import("./types/Music.ts").Music>; }; users: { list(): Promise<import("./types/User.ts").User[]>; getCurrentUser(): Promise<import("./types/User.ts").User>; setCurrentUserName({ name }: { name: string; }): Promise<void>; delete({ id }: { id: string; }): Promise<void>; }; startListeningForUpdates(callback: (updateEvent: Event) => void): void; stopListeningForUpdates(): void; }>;