/** * Camera & PTZ types — shared between CamStack app and proxy. */ /** Streaming method. */ export type StreamMethod = 'webrtc' | 'mjpeg'; /** PTZ command. */ export interface PanTiltZoomCommand { movement?: 'Relative' | 'Absolute' | 'Continuous' | 'Home' | 'Preset'; pan?: number; tilt?: number; zoom?: number; preset?: string; timeout?: number; } /** PTZ capabilities reported by the device. */ export interface PanTiltZoomCapabilities { pan?: boolean; tilt?: boolean; zoom?: boolean; presets?: Record; } /** Accessory switch kinds exposed by the Advanced Notifier plugin. */ export type CameraAccessorySwitchKind = 'siren_on_motion' | 'siren' | 'light_on_motion' | 'light' | 'pir' | 'autotracking'; /** Extended camera status with accessory switches (from AN plugin). */ export interface CameraStatusEntry { notificationsEnabled: boolean; isRecording: boolean; isSnapshotsEnabled: boolean; isRebroadcastEnabled: boolean; accessorySwitchStates: Partial>; } /** Batch camera status response. */ export interface CamerasStatusResult { cameras: Record; }