import type { PlatformAccessory, Resolution } from "homebridge"; import type { ProtectCameraChannelConfig, ProtectCameraConfig, ProtectEventPacket } from "unifi-protect"; import { type Nullable } from "homebridge-plugin-utils"; import { LivestreamManager } from "../protect-livestream.js"; import type { MessageSwitchInterface } from "./protect-doorbell.js"; import type { ProtectCameraPackage } from "./protect-camera-package.js"; import { ProtectDevice } from "./protect-device.js"; import type { ProtectNvr } from "../protect-nvr.js"; import { ProtectStreamingDelegate } from "../protect-stream.js"; export interface RtspEntry { channel: ProtectCameraChannelConfig; lens?: number; name: string; resolution: Resolution; url: string; } type RtspOptions = Partial<{ biasHigher: boolean; default: string; maxPixels: number; rtspEntries: RtspEntry[]; }>; export declare class ProtectCamera extends ProtectDevice { protected static readonly RESOLUTIONS_4X3: number[][]; protected static readonly RESOLUTIONS_16X9: number[][]; private ambientLight; private isDeleted; isRinging: boolean; private isTampered; detectLicensePlate: string[]; readonly livestream: LivestreamManager; messageSwitches: Map; packageCamera?: Nullable; private rtspEntries; stream?: ProtectStreamingDelegate; ufp: ProtectCameraConfig; constructor(nvr: ProtectNvr, device: ProtectCameraConfig, accessory: PlatformAccessory); protected configureHints(): boolean; protected configureDevice(): boolean; cleanup(): void; protected eventHandler(packet: ProtectEventPacket): void; protected addEventHandler(packet: ProtectEventPacket): void; private configureAmbientLightSensor; private configureAccessFeatures; private configureMotionSmartSensor; private configureTamperDetection; private configureDoorbellMuteSwitch; private configureDoorbellTrigger; protected configureVideoDoorbell(): boolean; private configureCameraDetails; private configureCrop; private configureVideoStream; private configureHksv; private configureHksvRecordingSwitch; private configureNightVisionDimmer; private configureNvrRecordingSwitch; protected configureMqtt(): boolean; updateDevice(): boolean; private findRtspEntry; findRtsp(width: number, height: number, options?: RtspOptions): Nullable; findRecordingRtsp(width: number, height: number): Nullable; protected is4x3AspectRatio(width: number, height: number): boolean; private sortByResolutions; protected getResolution(resolution: Resolution): string; get videoCodecName(): string; get isHksvCapable(): boolean; private get nightVision(); private get nightVisionBrightness(); getAudioFilters(sampleRate?: number): string[]; } export {};