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 { 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; protected _initializeInternals(): Promise; 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>; getDevicesFromStation(stationSN: string): Promise>; getDevice(deviceSN: string): Promise; getStationDevice(stationSN: string, channel: number): Promise; getStations(): Promise>; getStation(stationSN: string): Promise; getApi(): HTTPApi; connectToStation(stationSN: string, p2pConnectionType?: P2PConnectionType): Promise; isStationConnected(stationSN: string): Promise; isStationEnergySavingDevice(stationSN: string): Promise; private handleHouses; private handleHubs; private refreshP2PData; private onStationConnect; private onStationConnectionError; private onStationClose; private handleDevices; refreshCloudData(): Promise; close(): void; setCameraMaxLivestreamDuration(seconds: number): void; getCameraMaxLivestreamDuration(): number; registerPushNotifications(credentials?: Credentials, persistentIds?: string[]): Promise; connect(options?: LoginOptions): Promise; getPushPersistentIds(): string[]; private updateDeviceProperties; private onAPIClose; private onAPIConnect; private onAPIConnectionError; startStationLivestream(deviceSN: string): Promise; stopStationLivestream(deviceSN: string): Promise; 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; cancelStationDownload(deviceSN: string): Promise; getConfig(): EufySecurityConfig; setDeviceProperty(deviceSN: string, name: string, value: unknown): Promise; setStationProperty(stationSN: string, name: string, value: unknown): Promise; 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; stopStationTalkback(deviceSN: string): Promise; private onStationDeviceShakeAlarm; private onStationDevice911Alarm; private onStationDeviceJammed; private onStationDeviceLowBattery; private onStationDeviceWrongTryProtectAlarm; addUser(deviceSN: string, username: string, passcode: string, schedule?: Schedule): Promise; deleteUser(deviceSN: string, username: string): Promise; updateUser(deviceSN: string, username: string, newUsername: string): Promise; updateUserPasscode(deviceSN: string, username: string, passcode: string): Promise; updateUserSchedule(deviceSN: string, username: string, schedule: Schedule): Promise; 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; }