UNPKG

eufy-security-client

Version:

Client to comunicate with Eufy-Security devices

180 lines (179 loc) 7.27 kB
import { TypedEmitter } from "tiny-typed-emitter"; import { EufySecurityEvents, EufySecurityConfig } from "./interfaces"; import { HTTPApi } from "./http/api"; import { LoginOptions, Schedule } from "./http/interfaces"; import { Station } from "./http/station"; import { PushNotificationService } from "./push/service"; import { Credentials } from "./push/models"; import { Device } from "./http/device"; import { P2PConnectionType } from "./p2p/types"; import { Logger, LoggingCategories } from "./logging"; import { LogLevel } from "typescript-logging"; export declare class EufySecurity extends TypedEmitter<EufySecurityEvents> { private config; private api; private houses; private stations; private devices; private readonly P2P_REFRESH_INTERVAL_MIN; private cameraMaxLivestreamSeconds; private cameraStationLivestreamTimeout; private pushService; private mqttService; private pushCloudRegistered; private pushCloudChecked; private persistentFile; private persistentData; private connected; private retries; private refreshEufySecurityCloudTimeout?; private refreshEufySecurityP2PTimeout; private deviceSnoozeTimeout; private loadingEmitter; private stationsLoaded?; private devicesLoaded?; private constructor(); static initialize(config: EufySecurityConfig, log?: Logger): Promise<EufySecurity>; protected _initializeInternals(): Promise<void>; private initMQTT; setLoggingLevel(category: LoggingCategories, level: LogLevel): void; getLoggingLevel(category: LoggingCategories): number; setInternalLogger(logger: Logger): void; getInternalLogger(): Logger | undefined; getPushService(): PushNotificationService; private addStation; private removeStation; private updateStation; private addDevice; private removeDevice; private updateDevice; getDevices(): Promise<Array<Device>>; getDevicesFromStation(stationSN: string): Promise<Array<Device>>; getDevice(deviceSN: string): Promise<Device>; getStationDevice(stationSN: string, channel: number): Promise<Device>; getStations(): Promise<Array<Station>>; getStation(stationSN: string): Promise<Station>; getApi(): HTTPApi; connectToStation(stationSN: string, p2pConnectionType?: P2PConnectionType): Promise<void>; isStationConnected(stationSN: string): Promise<boolean>; isStationEnergySavingDevice(stationSN: string): Promise<boolean>; private handleHouses; private handleHubs; private refreshP2PData; private onStationConnect; private onStationConnectionError; private onStationClose; private handleDevices; refreshCloudData(): Promise<void>; close(): void; setCameraMaxLivestreamDuration(seconds: number): void; getCameraMaxLivestreamDuration(): number; registerPushNotifications(credentials?: Credentials, persistentIds?: string[]): Promise<void>; connect(options?: LoginOptions): Promise<void>; getPushPersistentIds(): string[]; private updateDeviceProperties; private onAPIClose; private onAPIConnect; private onAPIConnectionError; startStationLivestream(deviceSN: string): Promise<void>; stopStationLivestream(deviceSN: string): Promise<void>; private writePersistentData; private saveCloudToken; private savePushCredentials; private savePushPersistentIds; getVersion(): string; isPushConnected(): boolean; isMQTTConnected(): boolean; isConnected(): boolean; private processInvitations; private onPushMessage; startStationDownload(deviceSN: string, path: string, cipherID: number): Promise<void>; cancelStationDownload(deviceSN: string): Promise<void>; getConfig(): EufySecurityConfig; setDeviceProperty(deviceSN: string, name: string, value: unknown): Promise<void>; setStationProperty(stationSN: string, name: string, value: unknown): Promise<void>; private onStartStationLivestream; private onStopStationLivestream; private onErrorStationLivestream; private onStartStationRTSPLivestream; private onStopStationRTSPLivestream; private onStationStartDownload; private onStationFinishDownload; private onStationCommandResult; private onStationSecondaryCommandResult; private onStationRtspUrl; private onStationGuardMode; private onStationCurrentMode; private onStationPropertyChanged; private onStationRawPropertyChanged; private onStationAlarmEvent; private onStationAlarmDelayEvent; private onStationArmDelayEvent; private onStationAlarmArmedEvent; private onDevicePropertyChanged; private onDeviceRawPropertyChanged; private onDeviceCryingDetected; private onDeviceSoundDetected; private onDevicePetDetected; private onDeviceVehicleDetected; private onDeviceMotionDetected; private onDevicePersonDetected; private onDeviceRings; private onDeviceLocked; private onDeviceOpen; private onDevicePackageDelivered; private onDevicePackageStranded; private onDevicePackageTaken; private onDeviceSomeoneLoitering; private onDeviceRadarMotionDetected; private onDevice911Alarm; private onDeviceShakeAlarm; private onDeviceWrongTryProtectAlarm; private onDeviceLongTimeNotClose; private onDeviceLowBattery; private onDeviceJammed; private onDeviceStrangerPersonDetected; private onDeviceDogDetected; private onDeviceDogLickDetected; private onDeviceDogPoopDetected; private onDeviceReady; private onStationRuntimeState; private onStationChargingState; private onStationWifiRssi; private onCaptchaRequest; private onFloodlightManualSwitch; private onAuthTokenInvalidated; private onTfaRequest; private onStationTalkbackStart; private onStationTalkbackStop; private onStationTalkbackError; startStationTalkback(deviceSN: string): Promise<void>; stopStationTalkback(deviceSN: string): Promise<void>; private onStationDeviceShakeAlarm; private onStationDevice911Alarm; private onStationDeviceJammed; private onStationDeviceLowBattery; private onStationDeviceWrongTryProtectAlarm; addUser(deviceSN: string, username: string, passcode: string, schedule?: Schedule): Promise<void>; deleteUser(deviceSN: string, username: string): Promise<void>; updateUser(deviceSN: string, username: string, newUsername: string): Promise<void>; updateUserPasscode(deviceSN: string, username: string, passcode: string): Promise<void>; updateUserSchedule(deviceSN: string, username: string, schedule: Schedule): Promise<void>; private onStationDevicePinVerified; private onStationSdInfoEx; private _emitStationImageDownload; private onStationImageDownload; private onStationDatabaseQueryLatest; private onStationDatabaseQueryLocal; private onStationDatabaseCountByDate; private onStationDatabaseDelete; private onStationSensorStatus; private onStationGarageDoorStatus; private onStorageInfoHb3; private onDeviceTampering; private onDeviceLowTemperature; private onDeviceHighTemperature; private onDevicePinIncorrect; private onDeviceLidStuck; private onDeviceBatteryFullyCharged; }