dt-common-device
Version:
A secure and robust device management library for IoT applications
102 lines (101 loc) • 3.88 kB
TypeScript
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;
}