UNPKG

homebridge-plugin-eufy-security

Version:
52 lines 2.12 kB
/// <reference types="node" /> import { CameraController, CameraStreamingDelegate, PrepareStreamCallback, PrepareStreamRequest, SnapshotRequest, SnapshotRequestCallback, SRTPCryptoSuites, StreamingRequest, StreamRequestCallback } from 'homebridge'; import { Socket } from 'dgram'; import { FullDevice } from 'eufy-node-client/src/http/http-response.models'; import { EufySecurityHomebridgePlatform } from './platform'; import { FfmpegProcess } from './ffmpeg'; declare type SessionInfo = { address: string; localAddress: string; ipv6: boolean; videoPort: number; videoReturnPort: number; videoCryptoSuite: SRTPCryptoSuites; videoSRTP: Buffer; videoSSRC: number; audioPort: number; audioReturnPort: number; audioCryptoSuite: SRTPCryptoSuites; audioSRTP: Buffer; audioSSRC: number; }; declare type ActiveSession = { mainProcess?: FfmpegProcess; returnProcess?: FfmpegProcess; timeout?: NodeJS.Timeout; socket?: Socket; }; export declare class EufyCameraStreamingDelegate implements CameraStreamingDelegate { private readonly hap; private readonly log; private readonly cameraName; private readonly videoProcessor; private readonly interfaceName?; private readonly platform; private readonly device; readonly controller: CameraController; private debug; private audio; pendingSessions: Record<string, SessionInfo>; ongoingSessions: Record<string, ActiveSession>; timeouts: Record<string, NodeJS.Timeout>; constructor(platform: EufySecurityHomebridgePlatform, device: FullDevice); private determineResolution; handleSnapshotRequest(request: SnapshotRequest, callback: SnapshotRequestCallback): void; getIpAddress(ipv6: boolean, interfaceName?: string): Promise<string>; prepareStream(request: PrepareStreamRequest, callback: PrepareStreamCallback): Promise<void>; private startStream; handleStreamRequest(request: StreamingRequest, callback: StreamRequestCallback): void; stopStream(sessionId: string): void; } export {}; //# sourceMappingURL=new-streaming-delegate.d.ts.map