homebridge-unifi-protect
Version:
Homebridge UniFi Protect plugin providing complete HomeKit integration for the entire UniFi Protect ecosystem with full support for most features including HomeKit Secure Video, multiple controllers, blazing fast performance, and much more.
43 lines • 1.93 kB
TypeScript
import type { CameraRecordingConfiguration, CameraRecordingDelegate, RecordingPacket } from "homebridge";
import { HDSProtocolSpecificErrorReason } from "homebridge-plugin-utils";
import type { Nullable } from "homebridge-plugin-utils";
import type { ProtectTimeshiftBuffer } from "./timeshift.ts";
import type { ProtectCameraHost } from "./camera-host.ts";
import type { ProtectTimeshiftSupervisor } from "./timeshift-supervisor.ts";
export declare class ProtectRecordingDelegate implements CameraRecordingDelegate {
private _isRecording;
private _isTransmitting;
private abortController?;
private readonly accessory;
private readonly api;
private readonly clock;
private ffmpegStream?;
private readonly hap;
private lastStreamId;
private readonly log;
private nextEventId;
private readonly protectCamera;
private recordingConfig?;
private segmentWriter?;
private session;
private readonly supervisor;
readonly timeshift: ProtectTimeshiftBuffer;
private transmitListener?;
constructor(protectCamera: ProtectCameraHost, supervisor: ProtectTimeshiftSupervisor);
updateRecordingActive(active: boolean): void;
private applyRecordingActive;
updateRecordingConfiguration(configuration: CameraRecordingConfiguration | undefined): void;
handleRecordingStreamRequest(_streamId: number, signal: AbortSignal): AsyncGenerator<RecordingPacket>;
acknowledgeStream(): void;
closeRecordingStream(streamId: number, reason?: HDSProtocolSpecificErrorReason): void;
configureTimeshifting(): Promise<boolean>;
private startTransmitting;
private paceSegmentDelivery;
private reserveTelemetry;
private stopTransmitting;
get isAudioActive(): boolean;
get isTransmitting(): boolean;
get isRecording(): boolean;
get recordingConfiguration(): Nullable<CameraRecordingConfiguration>;
}
//# sourceMappingURL=record.d.ts.map