/** * Device command types and interfaces for Eufy devices * * Defines all command interfaces for device-level operations in the Eufy Security WebSocket API. * Includes property, streaming, alarm, camera control, and talkback commands. */ import { DEVICE_COMMANDS, DeviceCommandType, PanTiltDirection } from "./constants"; import { BaseCommandWithSerial } from "../types/commands"; import { DeviceProperties } from "./properties"; /** * Base interface for device commands */ export interface BaseDeviceCommand extends BaseCommandWithSerial { } /** * Get device properties metadata */ export interface DeviceGetPropertiesMetadataCommand extends BaseDeviceCommand { } /** * Get device properties */ export interface DeviceGetPropertiesCommand extends BaseDeviceCommand { } /** * Set device property */ export interface DeviceSetPropertyCommand extends BaseDeviceCommand { name: keyof DeviceProperties; value: DeviceProperties[keyof DeviceProperties]; } /** * Check if device has property */ export interface DeviceHasPropertyCommand extends BaseDeviceCommand { propertyName: keyof DeviceProperties; } /** * Get device commands */ export interface DeviceGetCommandsCommand extends BaseDeviceCommand { } /** * Check if device has command */ export interface DeviceHasCommandCommand extends BaseDeviceCommand { commandName: string; } /** * Start livestream */ export interface DeviceStartLivestreamCommand extends BaseDeviceCommand { } /** * Stop livestream */ export interface DeviceStopLivestreamCommand extends BaseDeviceCommand { } /** * Check if livestreaming */ export interface DeviceIsLivestreamingCommand extends BaseDeviceCommand { } /** * Start RTSP livestream */ export interface DeviceStartRtspLivestreamCommand extends BaseDeviceCommand { } /** * Stop RTSP livestream */ export interface DeviceStopRtspLivestreamCommand extends BaseDeviceCommand { } /** * Pan and tilt camera */ export interface DevicePanAndTiltCommand extends BaseDeviceCommand { direction: PanTiltDirection; } /** * Calibrate camera */ export interface DeviceCalibrateCommand extends BaseDeviceCommand { } /** * Quick response */ export interface DeviceQuickResponseCommand extends BaseDeviceCommand { voiceId: number; } /** * Get available voices */ export interface DeviceGetVoicesCommand extends BaseDeviceCommand { } /** * Start talkback */ export interface DeviceStartTalkbackCommand extends BaseDeviceCommand { } /** * Stop talkback */ export interface DeviceStopTalkbackCommand extends BaseDeviceCommand { } /** * Send audio data during talkback session */ export interface DeviceTalkbackAudioDataCommand extends BaseDeviceCommand { buffer: { type: "Buffer"; data: number[]; }; } /** * Unlock device (for locks) */ export interface DeviceUnlockCommand extends BaseDeviceCommand { } /** * Trigger device alarm */ export interface DeviceTriggerAlarmCommand extends BaseDeviceCommand { seconds: number; } /** * Reset device alarm */ export interface DeviceResetAlarmCommand extends BaseDeviceCommand { } /** * Union type for all device commands */ export type DeviceCommand = DeviceGetPropertiesMetadataCommand | DeviceGetPropertiesCommand | DeviceSetPropertyCommand | DeviceHasPropertyCommand | DeviceGetCommandsCommand | DeviceHasCommandCommand | DeviceStartLivestreamCommand | DeviceStopLivestreamCommand | DeviceIsLivestreamingCommand | DeviceStartRtspLivestreamCommand | DeviceStopRtspLivestreamCommand | DevicePanAndTiltCommand | DeviceCalibrateCommand | DeviceQuickResponseCommand | DeviceGetVoicesCommand | DeviceStartTalkbackCommand | DeviceStopTalkbackCommand | DeviceTalkbackAudioDataCommand | DeviceUnlockCommand | DeviceTriggerAlarmCommand | DeviceResetAlarmCommand; //# sourceMappingURL=commands.d.ts.map