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.
87 lines • 3.73 kB
TypeScript
import type { Camera, ProtectCameraConfig, SnapshotOptions, TalkbackSession } from "unifi-protect";
import type { LivestreamHostOptions, ProtectCameraHost } from "../../media/camera-host.ts";
import type { ProtectAccessory, WithoutIdentity } from "../../types.ts";
import type { ChannelProfile } from "../../media/resolution.ts";
import type { DoorbellCapability } from "./doorbell.ts";
import type { LivestreamSubscription } from "../../media/livestream.ts";
import type { Nullable } from "homebridge-plugin-utils";
import type { ProtectCameraPackage } from "./camera-package.ts";
import { ProtectDevice } from "../device.ts";
import type { ProtectNvr } from "../../nvr/nvr.ts";
import type { StreamingDelegate } from "../../media/stream-delegate.ts";
type ReconcileSource = "construct" | "observe";
export declare class ProtectCamera extends ProtectDevice implements ProtectCameraHost {
#private;
private ambientLight;
private isDeleted;
isRinging: boolean;
isTampered: boolean;
detectLicensePlate: string[];
doorbell: Nullable<DoorbellCapability>;
private channelProfiles;
stream?: StreamingDelegate;
protected readonly device: Camera;
constructor(nvr: ProtectNvr, accessory: ProtectAccessory, device: Camera);
get ufp(): Readonly<WithoutIdentity<ProtectCameraConfig>>;
get packageCamera(): Nullable<ProtectCameraPackage>;
protected get rtspHost(): string;
protected configureHints(): boolean;
protected configureDevice(): boolean;
private reconcileDoorbellCapability;
private attachDoorbellCapability;
publishObserverWake(key: string): void;
cleanup(): void;
protected spawnObservers(): void;
protected spawnCameraObservers(): void;
private configureAmbientLightSensor;
snapshotFromController(opts?: SnapshotOptions): Promise<Buffer>;
livestream(channelProfile: ChannelProfile, opts?: LivestreamHostOptions): LivestreamSubscription;
reboot(): Promise<void>;
talkback(opts?: {
signal?: AbortSignal;
}): Promise<TalkbackSession>;
private configureAccessFeatures;
private configureMotionSmartSensor;
private configureTamperDetection;
private configureDoorbellMuteSwitch;
private configureDoorbellTrigger;
configureDoorbellService(): boolean;
private configureCameraDetails;
private configureCrop;
protected reconcileCapabilities(source: ReconcileSource): Promise<void>;
private reconcileStreamingAudioCapabilities;
protected reconcileStreaming(): Promise<boolean>;
private refreshChannelProfiles;
private configureStreamingDelegate;
private teardownStreamingDelegate;
private rebuildStreamingDelegate;
private configureHksv;
private configureHksvRecordingSwitch;
private configureNightVisionDimmer;
private configureNvrRecordingSwitch;
protected configureMqtt(): boolean;
private configureDoorbellRingMqtt;
updateDevice(): boolean;
protected updateAvailability(): void;
refreshReachability(): Nullable<{
now: boolean;
was: boolean;
}>;
protected updateNightVision(): void;
protected updateStatusIndicator(): void;
protected updateRecordingSwitches(): void;
selectChannel(width: number, height: number, opts?: {
biasHigher?: boolean;
maxPixels?: number;
}): Nullable<ChannelProfile>;
selectSubstrateChannel(): Nullable<ChannelProfile>;
get videoCodecName(): string;
get isHksvCapable(): boolean;
get usesTimeshiftLivestream(): boolean;
private get recordingMode();
private get nightVision();
private get nightVisionBrightness();
getAudioFilters(sampleRate?: number): string[];
}
export {};
//# sourceMappingURL=camera.d.ts.map