@homebridge-eufy-security/eufy-security-client 3.7.2-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/.prettierignore/342/200/216 +8 -0
  2. package/.prettierrc +11 -0
  3. package/LICENSE +21 -0
  4. package/README.md +970 -0
  5. package/build/error.d.ts +138 -0
  6. package/build/error.js +190 -0
  7. package/build/error.js.map +1 -0
  8. package/build/eufysecurity.d.ts +180 -0
  9. package/build/eufysecurity.js +3148 -0
  10. package/build/eufysecurity.js.map +1 -0
  11. package/build/http/api.d.ts +119 -0
  12. package/build/http/api.js +1877 -0
  13. package/build/http/api.js.map +1 -0
  14. package/build/http/cache.d.ts +8 -0
  15. package/build/http/cache.js +34 -0
  16. package/build/http/cache.js.map +1 -0
  17. package/build/http/const.d.ts +8 -0
  18. package/build/http/const.js +3054 -0
  19. package/build/http/const.js.map +1 -0
  20. package/build/http/device.d.ts +490 -0
  21. package/build/http/device.js +5256 -0
  22. package/build/http/device.js.map +1 -0
  23. package/build/http/error.d.ts +73 -0
  24. package/build/http/error.js +101 -0
  25. package/build/http/error.js.map +1 -0
  26. package/build/http/index.d.ts +10 -0
  27. package/build/http/index.js +30 -0
  28. package/build/http/index.js.map +1 -0
  29. package/build/http/interfaces.d.ts +248 -0
  30. package/build/http/interfaces.js +3 -0
  31. package/build/http/interfaces.js.map +1 -0
  32. package/build/http/models.d.ts +608 -0
  33. package/build/http/models.js +3 -0
  34. package/build/http/models.js.map +1 -0
  35. package/build/http/parameter.d.ts +7 -0
  36. package/build/http/parameter.js +119 -0
  37. package/build/http/parameter.js.map +1 -0
  38. package/build/http/station.d.ts +382 -0
  39. package/build/http/station.js +15735 -0
  40. package/build/http/station.js.map +1 -0
  41. package/build/http/types.d.ts +1358 -0
  42. package/build/http/types.js +10333 -0
  43. package/build/http/types.js.map +1 -0
  44. package/build/http/utils.d.ts +89 -0
  45. package/build/http/utils.js +916 -0
  46. package/build/http/utils.js.map +1 -0
  47. package/build/index.d.ts +8 -0
  48. package/build/index.js +29 -0
  49. package/build/index.js.map +1 -0
  50. package/build/interfaces.d.ts +147 -0
  51. package/build/interfaces.js +7 -0
  52. package/build/interfaces.js.map +1 -0
  53. package/build/logging.d.ts +36 -0
  54. package/build/logging.js +119 -0
  55. package/build/logging.js.map +1 -0
  56. package/build/mqtt/interface.d.ts +6 -0
  57. package/build/mqtt/interface.js +3 -0
  58. package/build/mqtt/interface.js.map +1 -0
  59. package/build/mqtt/model.d.ts +24 -0
  60. package/build/mqtt/model.js +3 -0
  61. package/build/mqtt/model.js.map +1 -0
  62. package/build/mqtt/mqtt-eufy.crt +79 -0
  63. package/build/mqtt/proto/lock.proto +33 -0
  64. package/build/mqtt/service.d.ts +28 -0
  65. package/build/mqtt/service.js +196 -0
  66. package/build/mqtt/service.js.map +1 -0
  67. package/build/p2p/ble.d.ts +59 -0
  68. package/build/p2p/ble.js +281 -0
  69. package/build/p2p/ble.js.map +1 -0
  70. package/build/p2p/error.d.ts +49 -0
  71. package/build/p2p/error.js +69 -0
  72. package/build/p2p/error.js.map +1 -0
  73. package/build/p2p/index.d.ts +8 -0
  74. package/build/p2p/index.js +28 -0
  75. package/build/p2p/index.js.map +1 -0
  76. package/build/p2p/interfaces.d.ts +423 -0
  77. package/build/p2p/interfaces.js +3 -0
  78. package/build/p2p/interfaces.js.map +1 -0
  79. package/build/p2p/models.d.ts +295 -0
  80. package/build/p2p/models.js +3 -0
  81. package/build/p2p/models.js.map +1 -0
  82. package/build/p2p/session.d.ts +186 -0
  83. package/build/p2p/session.js +3737 -0
  84. package/build/p2p/session.js.map +1 -0
  85. package/build/p2p/talkback.d.ts +8 -0
  86. package/build/p2p/talkback.js +23 -0
  87. package/build/p2p/talkback.js.map +1 -0
  88. package/build/p2p/types.d.ts +1164 -0
  89. package/build/p2p/types.js +1219 -0
  90. package/build/p2p/types.js.map +1 -0
  91. package/build/p2p/utils.d.ts +72 -0
  92. package/build/p2p/utils.js +865 -0
  93. package/build/p2p/utils.js.map +1 -0
  94. package/build/push/client.d.ts +49 -0
  95. package/build/push/client.js +344 -0
  96. package/build/push/client.js.map +1 -0
  97. package/build/push/error.d.ts +73 -0
  98. package/build/push/error.js +101 -0
  99. package/build/push/error.js.map +1 -0
  100. package/build/push/index.d.ts +6 -0
  101. package/build/push/index.js +26 -0
  102. package/build/push/index.js.map +1 -0
  103. package/build/push/interfaces.d.ts +19 -0
  104. package/build/push/interfaces.js +3 -0
  105. package/build/push/interfaces.js.map +1 -0
  106. package/build/push/models.d.ts +328 -0
  107. package/build/push/models.js +38 -0
  108. package/build/push/models.js.map +1 -0
  109. package/build/push/parser.d.ts +25 -0
  110. package/build/push/parser.js +231 -0
  111. package/build/push/parser.js.map +1 -0
  112. package/build/push/proto/checkin.proto +266 -0
  113. package/build/push/proto/mcs.proto +328 -0
  114. package/build/push/service.d.ts +46 -0
  115. package/build/push/service.js +965 -0
  116. package/build/push/service.js.map +1 -0
  117. package/build/push/types.d.ts +220 -0
  118. package/build/push/types.js +244 -0
  119. package/build/push/types.js.map +1 -0
  120. package/build/push/utils.d.ts +7 -0
  121. package/build/push/utils.js +116 -0
  122. package/build/push/utils.js.map +1 -0
  123. package/build/utils.d.ts +115 -0
  124. package/build/utils.js +438 -0
  125. package/build/utils.js.map +1 -0
  126. package/eslint.config.mts +68 -0
  127. package/jest.config.js +14 -0
  128. package/package.json +85 -0
  129. package/scripts/cut_release.sh +31 -0
@@ -0,0 +1,138 @@
1
+ /**
2
+ *
3
+ * Error class and utils
4
+ *
5
+ */
6
+ export type Jsonable = string | number | boolean | object | null | undefined | readonly Jsonable[] | {
7
+ readonly [key: string]: Jsonable;
8
+ } | {
9
+ toJSON(): Jsonable;
10
+ };
11
+ export declare class BaseError extends Error {
12
+ readonly context?: Jsonable;
13
+ constructor(message: string, options?: {
14
+ cause?: Error;
15
+ context?: Jsonable;
16
+ });
17
+ }
18
+ /**
19
+ *
20
+ * Ensure the value pass is an error and returns an Error class
21
+ *
22
+ * @param value
23
+ */
24
+ export declare function ensureError(value: Error | string | unknown): BaseError;
25
+ export declare class InvalidCountryCodeError extends BaseError {
26
+ constructor(message: string, options?: {
27
+ cause?: Error;
28
+ context?: Jsonable;
29
+ });
30
+ }
31
+ export declare class InvalidLanguageCodeError extends BaseError {
32
+ constructor(message: string, options?: {
33
+ cause?: Error;
34
+ context?: Jsonable;
35
+ });
36
+ }
37
+ export declare class StationNotFoundError extends BaseError {
38
+ constructor(message: string, options?: {
39
+ cause?: Error;
40
+ context?: Jsonable;
41
+ });
42
+ }
43
+ export declare class DeviceNotFoundError extends BaseError {
44
+ constructor(message: string, options?: {
45
+ cause?: Error;
46
+ context?: Jsonable;
47
+ });
48
+ }
49
+ export declare class NotSupportedError extends BaseError {
50
+ constructor(message: string, options?: {
51
+ cause?: Error;
52
+ context?: Jsonable;
53
+ });
54
+ }
55
+ export declare class WrongStationError extends BaseError {
56
+ constructor(message: string, options?: {
57
+ cause?: Error;
58
+ context?: Jsonable;
59
+ });
60
+ }
61
+ export declare class RTSPPropertyNotEnabledError extends BaseError {
62
+ constructor(message: string, options?: {
63
+ cause?: Error;
64
+ context?: Jsonable;
65
+ });
66
+ }
67
+ export declare class InvalidPropertyValueError extends BaseError {
68
+ constructor(message: string, options?: {
69
+ cause?: Error;
70
+ context?: Jsonable;
71
+ });
72
+ }
73
+ export declare class InvalidCommandValueError extends BaseError {
74
+ constructor(message: string, options?: {
75
+ cause?: Error;
76
+ context?: Jsonable;
77
+ });
78
+ }
79
+ export declare class ReadOnlyPropertyError extends BaseError {
80
+ constructor(message: string, options?: {
81
+ cause?: Error;
82
+ context?: Jsonable;
83
+ });
84
+ }
85
+ export declare class LivestreamError extends BaseError {
86
+ constructor(message: string, options?: {
87
+ cause?: Error;
88
+ context?: Jsonable;
89
+ });
90
+ }
91
+ export declare class TalkbackError extends BaseError {
92
+ constructor(message: string, options?: {
93
+ cause?: Error;
94
+ context?: Jsonable;
95
+ });
96
+ }
97
+ export declare class StationConnectTimeoutError extends BaseError {
98
+ constructor(message: string, options?: {
99
+ cause?: Error;
100
+ context?: Jsonable;
101
+ });
102
+ }
103
+ export declare class AddUserError extends BaseError {
104
+ constructor(message: string, options?: {
105
+ cause?: Error;
106
+ context?: Jsonable;
107
+ });
108
+ }
109
+ export declare class DeleteUserError extends BaseError {
110
+ constructor(message: string, options?: {
111
+ cause?: Error;
112
+ context?: Jsonable;
113
+ });
114
+ }
115
+ export declare class UpdateUserUsernameError extends BaseError {
116
+ constructor(message: string, options?: {
117
+ cause?: Error;
118
+ context?: Jsonable;
119
+ });
120
+ }
121
+ export declare class UpdateUserScheduleError extends BaseError {
122
+ constructor(message: string, options?: {
123
+ cause?: Error;
124
+ context?: Jsonable;
125
+ });
126
+ }
127
+ export declare class UpdateUserPasscodeError extends BaseError {
128
+ constructor(message: string, options?: {
129
+ cause?: Error;
130
+ context?: Jsonable;
131
+ });
132
+ }
133
+ export declare class PinNotVerifiedError extends BaseError {
134
+ constructor(message: string, options?: {
135
+ cause?: Error;
136
+ context?: Jsonable;
137
+ });
138
+ }
package/build/error.js ADDED
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ /**
3
+ *
4
+ * Error class and utils
5
+ *
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.PinNotVerifiedError = exports.UpdateUserPasscodeError = exports.UpdateUserScheduleError = exports.UpdateUserUsernameError = exports.DeleteUserError = exports.AddUserError = exports.StationConnectTimeoutError = exports.TalkbackError = exports.LivestreamError = exports.ReadOnlyPropertyError = exports.InvalidCommandValueError = exports.InvalidPropertyValueError = exports.RTSPPropertyNotEnabledError = exports.WrongStationError = exports.NotSupportedError = exports.DeviceNotFoundError = exports.StationNotFoundError = exports.InvalidLanguageCodeError = exports.InvalidCountryCodeError = exports.BaseError = void 0;
9
+ exports.ensureError = ensureError;
10
+ class BaseError extends Error {
11
+ context;
12
+ constructor(message, options = {}) {
13
+ const { cause, context } = options;
14
+ super(message, { cause }); //NodeJs 16.9.0
15
+ this.name = this.constructor.name;
16
+ this.context = context;
17
+ }
18
+ }
19
+ exports.BaseError = BaseError;
20
+ /**
21
+ *
22
+ * Ensure the value pass is an error and returns an Error class
23
+ *
24
+ * @param value
25
+ */
26
+ function ensureError(value) {
27
+ if (value instanceof Error)
28
+ return value;
29
+ let stringified = "[Unable to stringify the thrown value]";
30
+ try {
31
+ stringified = JSON.stringify(value);
32
+ }
33
+ catch (error) {
34
+ console.log("Error parsing value to ensure error ", error);
35
+ }
36
+ return new Error(`This value was thrown as is, not through an Error: ${stringified}`);
37
+ }
38
+ class InvalidCountryCodeError extends BaseError {
39
+ constructor(message, options = {}) {
40
+ super(message, options);
41
+ Object.setPrototypeOf(this, new.target.prototype);
42
+ this.name = InvalidCountryCodeError.name;
43
+ }
44
+ }
45
+ exports.InvalidCountryCodeError = InvalidCountryCodeError;
46
+ class InvalidLanguageCodeError extends BaseError {
47
+ constructor(message, options = {}) {
48
+ super(message, options);
49
+ Object.setPrototypeOf(this, new.target.prototype);
50
+ this.name = InvalidLanguageCodeError.name;
51
+ }
52
+ }
53
+ exports.InvalidLanguageCodeError = InvalidLanguageCodeError;
54
+ class StationNotFoundError extends BaseError {
55
+ constructor(message, options = {}) {
56
+ super(message, options);
57
+ Object.setPrototypeOf(this, new.target.prototype);
58
+ this.name = StationNotFoundError.name;
59
+ }
60
+ }
61
+ exports.StationNotFoundError = StationNotFoundError;
62
+ class DeviceNotFoundError extends BaseError {
63
+ constructor(message, options = {}) {
64
+ super(message, options);
65
+ Object.setPrototypeOf(this, new.target.prototype);
66
+ this.name = DeviceNotFoundError.name;
67
+ }
68
+ }
69
+ exports.DeviceNotFoundError = DeviceNotFoundError;
70
+ class NotSupportedError extends BaseError {
71
+ constructor(message, options = {}) {
72
+ super(message, options);
73
+ Object.setPrototypeOf(this, new.target.prototype);
74
+ this.name = NotSupportedError.name;
75
+ }
76
+ }
77
+ exports.NotSupportedError = NotSupportedError;
78
+ class WrongStationError extends BaseError {
79
+ constructor(message, options = {}) {
80
+ super(message, options);
81
+ Object.setPrototypeOf(this, new.target.prototype);
82
+ this.name = WrongStationError.name;
83
+ }
84
+ }
85
+ exports.WrongStationError = WrongStationError;
86
+ class RTSPPropertyNotEnabledError extends BaseError {
87
+ constructor(message, options = {}) {
88
+ super(message, options);
89
+ Object.setPrototypeOf(this, new.target.prototype);
90
+ this.name = RTSPPropertyNotEnabledError.name;
91
+ }
92
+ }
93
+ exports.RTSPPropertyNotEnabledError = RTSPPropertyNotEnabledError;
94
+ class InvalidPropertyValueError extends BaseError {
95
+ constructor(message, options = {}) {
96
+ super(message, options);
97
+ Object.setPrototypeOf(this, new.target.prototype);
98
+ this.name = InvalidPropertyValueError.name;
99
+ }
100
+ }
101
+ exports.InvalidPropertyValueError = InvalidPropertyValueError;
102
+ class InvalidCommandValueError extends BaseError {
103
+ constructor(message, options = {}) {
104
+ super(message, options);
105
+ Object.setPrototypeOf(this, new.target.prototype);
106
+ this.name = InvalidCommandValueError.name;
107
+ }
108
+ }
109
+ exports.InvalidCommandValueError = InvalidCommandValueError;
110
+ class ReadOnlyPropertyError extends BaseError {
111
+ constructor(message, options = {}) {
112
+ super(message, options);
113
+ Object.setPrototypeOf(this, new.target.prototype);
114
+ this.name = ReadOnlyPropertyError.name;
115
+ }
116
+ }
117
+ exports.ReadOnlyPropertyError = ReadOnlyPropertyError;
118
+ class LivestreamError extends BaseError {
119
+ constructor(message, options = {}) {
120
+ super(message, options);
121
+ Object.setPrototypeOf(this, new.target.prototype);
122
+ this.name = LivestreamError.name;
123
+ }
124
+ }
125
+ exports.LivestreamError = LivestreamError;
126
+ class TalkbackError extends BaseError {
127
+ constructor(message, options = {}) {
128
+ super(message, options);
129
+ Object.setPrototypeOf(this, new.target.prototype);
130
+ this.name = TalkbackError.name;
131
+ }
132
+ }
133
+ exports.TalkbackError = TalkbackError;
134
+ class StationConnectTimeoutError extends BaseError {
135
+ constructor(message, options = {}) {
136
+ super(message, options);
137
+ Object.setPrototypeOf(this, new.target.prototype);
138
+ this.name = StationConnectTimeoutError.name;
139
+ }
140
+ }
141
+ exports.StationConnectTimeoutError = StationConnectTimeoutError;
142
+ class AddUserError extends BaseError {
143
+ constructor(message, options = {}) {
144
+ super(message, options);
145
+ Object.setPrototypeOf(this, new.target.prototype);
146
+ this.name = AddUserError.name;
147
+ }
148
+ }
149
+ exports.AddUserError = AddUserError;
150
+ class DeleteUserError extends BaseError {
151
+ constructor(message, options = {}) {
152
+ super(message, options);
153
+ Object.setPrototypeOf(this, new.target.prototype);
154
+ this.name = DeleteUserError.name;
155
+ }
156
+ }
157
+ exports.DeleteUserError = DeleteUserError;
158
+ class UpdateUserUsernameError extends BaseError {
159
+ constructor(message, options = {}) {
160
+ super(message, options);
161
+ Object.setPrototypeOf(this, new.target.prototype);
162
+ this.name = UpdateUserUsernameError.name;
163
+ }
164
+ }
165
+ exports.UpdateUserUsernameError = UpdateUserUsernameError;
166
+ class UpdateUserScheduleError extends BaseError {
167
+ constructor(message, options = {}) {
168
+ super(message, options);
169
+ Object.setPrototypeOf(this, new.target.prototype);
170
+ this.name = UpdateUserScheduleError.name;
171
+ }
172
+ }
173
+ exports.UpdateUserScheduleError = UpdateUserScheduleError;
174
+ class UpdateUserPasscodeError extends BaseError {
175
+ constructor(message, options = {}) {
176
+ super(message, options);
177
+ Object.setPrototypeOf(this, new.target.prototype);
178
+ this.name = UpdateUserPasscodeError.name;
179
+ }
180
+ }
181
+ exports.UpdateUserPasscodeError = UpdateUserPasscodeError;
182
+ class PinNotVerifiedError extends BaseError {
183
+ constructor(message, options = {}) {
184
+ super(message, options);
185
+ Object.setPrototypeOf(this, new.target.prototype);
186
+ this.name = PinNotVerifiedError.name;
187
+ }
188
+ }
189
+ exports.PinNotVerifiedError = PinNotVerifiedError;
190
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,180 @@
1
+ import { TypedEmitter } from "tiny-typed-emitter";
2
+ import { EufySecurityEvents, EufySecurityConfig } from "./interfaces";
3
+ import { HTTPApi } from "./http/api";
4
+ import { LoginOptions, Schedule } from "./http/interfaces";
5
+ import { Station } from "./http/station";
6
+ import { PushNotificationService } from "./push/service";
7
+ import { Credentials } from "./push/models";
8
+ import { Device } from "./http/device";
9
+ import { P2PConnectionType } from "./p2p/types";
10
+ import { Logger, LoggingCategories } from "./logging";
11
+ import { LogLevel } from "typescript-logging";
12
+ export declare class EufySecurity extends TypedEmitter<EufySecurityEvents> {
13
+ private config;
14
+ private api;
15
+ private houses;
16
+ private stations;
17
+ private devices;
18
+ private readonly P2P_REFRESH_INTERVAL_MIN;
19
+ private cameraMaxLivestreamSeconds;
20
+ private cameraStationLivestreamTimeout;
21
+ private pushService;
22
+ private mqttService;
23
+ private pushCloudRegistered;
24
+ private pushCloudChecked;
25
+ private persistentFile;
26
+ private persistentData;
27
+ private connected;
28
+ private retries;
29
+ private refreshEufySecurityCloudTimeout?;
30
+ private refreshEufySecurityP2PTimeout;
31
+ private deviceSnoozeTimeout;
32
+ private loadingEmitter;
33
+ private stationsLoaded?;
34
+ private devicesLoaded?;
35
+ private constructor();
36
+ static initialize(config: EufySecurityConfig, log?: Logger): Promise<EufySecurity>;
37
+ protected _initializeInternals(): Promise<void>;
38
+ private initMQTT;
39
+ setLoggingLevel(category: LoggingCategories, level: LogLevel): void;
40
+ getLoggingLevel(category: LoggingCategories): number;
41
+ setInternalLogger(logger: Logger): void;
42
+ getInternalLogger(): Logger | undefined;
43
+ getPushService(): PushNotificationService;
44
+ private addStation;
45
+ private removeStation;
46
+ private updateStation;
47
+ private addDevice;
48
+ private removeDevice;
49
+ private updateDevice;
50
+ getDevices(): Promise<Array<Device>>;
51
+ getDevicesFromStation(stationSN: string): Promise<Array<Device>>;
52
+ getDevice(deviceSN: string): Promise<Device>;
53
+ getStationDevice(stationSN: string, channel: number): Promise<Device>;
54
+ getStations(): Promise<Array<Station>>;
55
+ getStation(stationSN: string): Promise<Station>;
56
+ getApi(): HTTPApi;
57
+ connectToStation(stationSN: string, p2pConnectionType?: P2PConnectionType): Promise<void>;
58
+ isStationConnected(stationSN: string): Promise<boolean>;
59
+ isStationEnergySavingDevice(stationSN: string): Promise<boolean>;
60
+ private handleHouses;
61
+ private handleHubs;
62
+ private refreshP2PData;
63
+ private onStationConnect;
64
+ private onStationConnectionError;
65
+ private onStationClose;
66
+ private handleDevices;
67
+ refreshCloudData(): Promise<void>;
68
+ close(): void;
69
+ setCameraMaxLivestreamDuration(seconds: number): void;
70
+ getCameraMaxLivestreamDuration(): number;
71
+ registerPushNotifications(credentials?: Credentials, persistentIds?: string[]): Promise<void>;
72
+ connect(options?: LoginOptions): Promise<void>;
73
+ getPushPersistentIds(): string[];
74
+ private updateDeviceProperties;
75
+ private onAPIClose;
76
+ private onAPIConnect;
77
+ private onAPIConnectionError;
78
+ startStationLivestream(deviceSN: string): Promise<void>;
79
+ stopStationLivestream(deviceSN: string): Promise<void>;
80
+ private writePersistentData;
81
+ private saveCloudToken;
82
+ private savePushCredentials;
83
+ private savePushPersistentIds;
84
+ getVersion(): string;
85
+ isPushConnected(): boolean;
86
+ isMQTTConnected(): boolean;
87
+ isConnected(): boolean;
88
+ private processInvitations;
89
+ private onPushMessage;
90
+ startStationDownload(deviceSN: string, path: string, cipherID: number): Promise<void>;
91
+ cancelStationDownload(deviceSN: string): Promise<void>;
92
+ getConfig(): EufySecurityConfig;
93
+ setDeviceProperty(deviceSN: string, name: string, value: unknown): Promise<void>;
94
+ setStationProperty(stationSN: string, name: string, value: unknown): Promise<void>;
95
+ private onStartStationLivestream;
96
+ private onStopStationLivestream;
97
+ private onErrorStationLivestream;
98
+ private onStartStationRTSPLivestream;
99
+ private onStopStationRTSPLivestream;
100
+ private onStationStartDownload;
101
+ private onStationFinishDownload;
102
+ private onStationCommandResult;
103
+ private onStationSecondaryCommandResult;
104
+ private onStationRtspUrl;
105
+ private onStationGuardMode;
106
+ private onStationCurrentMode;
107
+ private onStationPropertyChanged;
108
+ private onStationRawPropertyChanged;
109
+ private onStationAlarmEvent;
110
+ private onStationAlarmDelayEvent;
111
+ private onStationArmDelayEvent;
112
+ private onStationAlarmArmedEvent;
113
+ private onDevicePropertyChanged;
114
+ private onDeviceRawPropertyChanged;
115
+ private onDeviceCryingDetected;
116
+ private onDeviceSoundDetected;
117
+ private onDevicePetDetected;
118
+ private onDeviceVehicleDetected;
119
+ private onDeviceMotionDetected;
120
+ private onDevicePersonDetected;
121
+ private onDeviceRings;
122
+ private onDeviceLocked;
123
+ private onDeviceOpen;
124
+ private onDevicePackageDelivered;
125
+ private onDevicePackageStranded;
126
+ private onDevicePackageTaken;
127
+ private onDeviceSomeoneLoitering;
128
+ private onDeviceRadarMotionDetected;
129
+ private onDevice911Alarm;
130
+ private onDeviceShakeAlarm;
131
+ private onDeviceWrongTryProtectAlarm;
132
+ private onDeviceLongTimeNotClose;
133
+ private onDeviceLowBattery;
134
+ private onDeviceJammed;
135
+ private onDeviceStrangerPersonDetected;
136
+ private onDeviceDogDetected;
137
+ private onDeviceDogLickDetected;
138
+ private onDeviceDogPoopDetected;
139
+ private onDeviceReady;
140
+ private onStationRuntimeState;
141
+ private onStationChargingState;
142
+ private onStationWifiRssi;
143
+ private onCaptchaRequest;
144
+ private onFloodlightManualSwitch;
145
+ private onAuthTokenInvalidated;
146
+ private onTfaRequest;
147
+ private onStationTalkbackStart;
148
+ private onStationTalkbackStop;
149
+ private onStationTalkbackError;
150
+ startStationTalkback(deviceSN: string): Promise<void>;
151
+ stopStationTalkback(deviceSN: string): Promise<void>;
152
+ private onStationDeviceShakeAlarm;
153
+ private onStationDevice911Alarm;
154
+ private onStationDeviceJammed;
155
+ private onStationDeviceLowBattery;
156
+ private onStationDeviceWrongTryProtectAlarm;
157
+ addUser(deviceSN: string, username: string, passcode: string, schedule?: Schedule): Promise<void>;
158
+ deleteUser(deviceSN: string, username: string): Promise<void>;
159
+ updateUser(deviceSN: string, username: string, newUsername: string): Promise<void>;
160
+ updateUserPasscode(deviceSN: string, username: string, passcode: string): Promise<void>;
161
+ updateUserSchedule(deviceSN: string, username: string, schedule: Schedule): Promise<void>;
162
+ private onStationDevicePinVerified;
163
+ private onStationSdInfoEx;
164
+ private _emitStationImageDownload;
165
+ private onStationImageDownload;
166
+ private onStationDatabaseQueryLatest;
167
+ private onStationDatabaseQueryLocal;
168
+ private onStationDatabaseQueryByDate;
169
+ private onStationDatabaseCountByDate;
170
+ private onStationDatabaseDelete;
171
+ private onStationSensorStatus;
172
+ private onStationGarageDoorStatus;
173
+ private onStorageInfoHb3;
174
+ private onDeviceTampering;
175
+ private onDeviceLowTemperature;
176
+ private onDeviceHighTemperature;
177
+ private onDevicePinIncorrect;
178
+ private onDeviceLidStuck;
179
+ private onDeviceBatteryFullyCharged;
180
+ }