/** * Shared core types for Eufy Security WebSocket Client. * * Provides JSON value types, common property interfaces, and property metadata types used across all modules. */ export type JSONValue = string | number | boolean | null | { [key: string]: JSONValue; } | JSONValue[]; /** * Common properties shared by both devices and stations. */ export interface CommonEufyProperties { name: string; model: string; serialNumber: string; hardwareVersion: string; softwareVersion: string; type: number; } export type PropertyMetadataType = "number" | "boolean" | "string"; /** * Base metadata for properties in the Eufy Security WebSocket API. * Provides common fields for property metadata definitions. */ export type PropertyMetadataBase = { type: T; name: string; label: string; writeable: true; default?: T extends "boolean" ? boolean : T extends "number" ? number : string; }; export type PropertyMetadataAny = PropertyMetadataBase<"boolean"> | PropertyMetadataBase<"string"> | (PropertyMetadataBase<"number"> & { states?: Record; min?: number; max?: number; unit?: string; }); export interface IndexedProperty { [index: string]: PropertyMetadataAny; } export type Optional = Omit & Partial>; export type RequiredProperties = T & Required>; export type DeepReadonly = { readonly [P in keyof T]: T[P] extends object ? DeepReadonly : T[P]; }; //# sourceMappingURL=shared.d.ts.map