UNPKG

dt-common-device

Version:

A secure and robust device management library for IoT applications

102 lines (101 loc) 3.88 kB
import { IConnection, IConnectionConnectParams, IDevice, IDeviceAccountResponse, IDeviceCommand, ISmartthingsDeviceCommand, ICommandResponse } from "./types"; /** * Class interface for device cloud operations and connection management */ export interface IDeviceCloudService { /** * Creates a new connection for device management * @param data - Connection data * @param userId - User identifier * @returns Promise with connection result */ createConnection(data: IConnection, userId: string): Promise<any>; /** * Gets device account information for a connection * @param connection - Connection object * @returns Promise with device account response */ getDeviceAccount(connection: IConnection): Promise<IDeviceAccountResponse>; /** * Gets all devices for a connection * @param connection - Connection object * @returns Promise with array of devices */ getDevices(connection: IConnection): Promise<IDevice[]>; /** * Filters devices based on connection and device list * @param connection - Connection object * @param devices - Array of devices to filter * @returns Promise with filtered devices */ filterDevices(connection: IConnection, devices: any[]): Promise<IDevice[]>; /** * Connects to a device service * @param connection - Connection object * @param connectionConnect - Connection parameters * @returns Promise with connection result */ connect(connection: IConnection, connectionConnect: IConnectionConnectParams): Promise<any>; } /** * Interface for device command operations */ export interface IDeviceCommandManager { /** * Invokes a command on a device * @param command - Device command to execute * @param deviceId - Device identifier * @returns Promise with command response */ invokeCommand(command: IDeviceCommand, deviceId: string): Promise<ICommandResponse>; } /** * Interface for SmartThings specific device command operations */ export interface ISmartthingsDeviceCommandManager extends IDeviceCommandManager { /** * Performs device action for SmartThings * @param commands - Array of SmartThings device commands * @param deviceId - Device identifier * @param accessToken - Access token for authentication * @returns Promise with action result */ performDeviceAction(commands: ISmartthingsDeviceCommand[], deviceId: string, accessToken: string): Promise<any>; /** * Gets device status for SmartThings * @param deviceId - Device identifier * @param accessToken - Access token for authentication * @returns Promise with device status */ getDeviceStatus(deviceId: string, accessToken: string): Promise<any>; /** * Gets device lock status for SmartThings * @param deviceId - Device identifier * @param accessToken - Access token for authentication * @returns Promise with lock status */ getDeviceLockStatus(deviceId: string, accessToken: string): Promise<any>; } /** * Interface for device command factory */ export interface IDeviceCommandManagerFactory { /** * Creates a device command manager for a specific connection provider * @param connectionProvider - Connection provider type * @param connection - Connection object * @returns Device command manager instance */ createDeviceCommandManager(connectionProvider: string, connection: IConnection): IDeviceCommandManager; } /** * Interface for device command classes */ export interface IDeviceCommandClass { /** * Creates a SmartThings device command from a generic device command * @param deviceCommand - Generic device command * @returns SmartThings device command */ fromDeviceCommand(deviceCommand: IDeviceCommand): ISmartthingsDeviceCommand; }