UNPKG

@ubreu/homebridge-eufy-security

Version:
54 lines 2.1 kB
/// <reference types="node" /> /// <reference types="node" /> import { EventEmitter } from 'stream'; import { Camera } from 'eufy-security-client'; import { CameraConfig } from '../utils/configTypes'; import { EufySecurityPlatform } from '../platform'; import { LocalLivestreamManager } from './LocalLivestreamManager'; import { Logger as TsLogger, ILogObj } from 'tslog'; import { SnapshotRequest } from 'homebridge'; /** * possible performance settings: * 1. snapshots as current as possible (weak homebridge performance) -> forceRefreshSnapshot * - always get a new image from cloud or cam * 2. balanced * - start snapshot refresh but return snapshot as fast as possible * if request takes too long old snapshot will be returned * 3. get an old snapshot immediately -> !forceRefreshSnapshot * - wait on cloud snapshot with new events * * extra options: * - force refresh snapshots with interval * - force immediate snapshot-reject when ringing * * Drawbacks: elapsed time in homekit might be wrong */ export declare class SnapshotManager extends EventEmitter { private readonly platform; private readonly device; private cameraConfig; private readonly videoProcessor; private log; private livestreamManager; private currentSnapshot?; private blackSnapshot?; private refreshProcessRunning; private lastEvent; private lastRingEvent; private snapshotRefreshTimer?; constructor(platform: EufySecurityPlatform, device: Camera, cameraConfig: CameraConfig, livestreamManager: LocalLivestreamManager, log: TsLogger<ILogObj>); private onRingEvent; private onEvent; getSnapshotBuffer(request: SnapshotRequest): Promise<Buffer>; private getNewestSnapshotBuffer; private getBalancedSnapshot; private getNewestCloudSnapshot; private automaticSnapshotRefresh; private storeImage; private onPropertyValueChanged; private fetchCurrentCameraSnapshot; private getCurrentCameraSnapshot; private getCameraSource; private resizeSnapshot; } //# sourceMappingURL=SnapshotManager.d.ts.map