@ubreu/homebridge-eufy-security
Version:
Control Eufy Security from homebridge.
69 lines • 2.35 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { EventEmitter, Readable } from 'stream';
import { Camera } from 'eufy-security-client';
import { EufySecurityPlatform } from '../platform';
import { Logger as TsLogger, ILogObj } from 'tslog';
declare class AudiostreamProxy extends Readable {
private log;
private cacheData;
private pushNewDataImmediately;
private dataFramesCount;
constructor(log: TsLogger<ILogObj>);
private transmitData;
newAudioData(data: Buffer): void;
stopProxyStream(): void;
_read(size: number): void;
}
declare class VideostreamProxy extends Readable {
private manager;
private livestreamId;
private cacheData;
private log;
private killTimeout;
private pushNewDataImmediately;
private dataFramesCount;
constructor(id: number, cacheData: Array<Buffer>, manager: LocalLivestreamManager, log: TsLogger<ILogObj>);
private transmitData;
newVideoData(data: Buffer): void;
stopProxyStream(): void;
private resetKillTimeout;
_read(size: number): void;
}
type ProxyStream = {
id: number;
videostream: VideostreamProxy;
audiostream: AudiostreamProxy;
};
export declare class LocalLivestreamManager extends EventEmitter {
private readonly SECONDS_UNTIL_TERMINATION_AFTER_LAST_USED;
private readonly CONNECTION_ESTABLISHED_TIMEOUT;
private stationStream;
private log;
private livestreamCount;
private iFrameCache;
private proxyStreams;
private cacheEnabled;
private connectionTimeout?;
private terminationTimeout?;
private livestreamStartedAt;
private livestreamIsStarting;
private readonly platform;
private readonly device;
constructor(platform: EufySecurityPlatform, device: Camera, cacheEnabled: boolean, log: TsLogger<ILogObj>);
private initialize;
getLocalLivestream(): Promise<ProxyStream>;
private startAndGetLocalLiveStream;
private scheduleLivestreamCacheTermination;
stopLocalLiveStream(): void;
private onStationLivestreamStop;
private onStationLivestreamStart;
private getProxyStream;
stopProxyStream(id: number): void;
private stopAllProxyStreams;
private removeProxyStream;
private isIFrame;
}
export {};
//# sourceMappingURL=LocalLivestreamManager.d.ts.map