/// import { ActiveDing, CameraData, CameraHealth, HistoricalDingGlobal } from './ring-types'; import { RingRestClient } from './rest-client'; import { BehaviorSubject, Subject } from 'rxjs'; import { SrtpOptions } from './rtp-utils'; import { FfmpegOptions, SipSession } from './sip-session'; export declare function getInHomeDoorbellStatus(data: CameraData): boolean | undefined; export declare class RingCamera { private initialData; isDoorbot: boolean; private restClient; id: number; deviceType: import("./ring-types").RingCameraKind; model: string; onData: BehaviorSubject; hasLight: boolean; hasSiren: boolean; hasBattery: boolean; hasInHomeDoorbell: boolean; onRequestUpdate: Subject; onRequestActiveDings: Subject; onNewDing: Subject; onActiveDings: BehaviorSubject; onDoorbellPressed: import("rxjs").Observable; onMotionDetected: import("rxjs").Observable; onBatteryLevel: import("rxjs").Observable; onInHomeDoorbellStatus: import("rxjs").Observable; constructor(initialData: CameraData, isDoorbot: boolean, restClient: RingRestClient); updateData(update: CameraData): void; requestUpdate(): void; readonly data: CameraData; readonly name: string; readonly activeDings: ActiveDing[]; readonly batteryLevel: number | null; readonly hasLowBattery: boolean; readonly isOffline: boolean; doorbotUrl(path: string): string; setLight(on: boolean): Promise; setSiren(on: boolean): Promise; setInHomeDoorbell(on: boolean): Promise; getHealth(): Promise; startVideoOnDemand(): Promise; getSipConnectionDetails(): Promise; processActiveDing(ding: ActiveDing): void; getHistory(limit?: number, favoritesOnly?: boolean): Promise; getRecording(dingIdStr: string): Promise; private isTimestampInLifeTime; private getSnapshotTimestamp; private refreshSnapshotInProgress?; private snapshotLifeTime; private lastSnapshotTimestampLocal; private lastSnapshotPromise?; private refreshSnapshot; getSnapshot(allowStale?: boolean): Promise; sipUsedDingIds: string[]; getSipOptions(): Promise<{ to: string; from: string; dingId: string; }>; createSipSession(srtpOption?: { audio?: SrtpOptions; video?: SrtpOptions; }): Promise; recordToFile(outputPath: string, duration?: number): Promise; streamVideo(ffmpegOptions: FfmpegOptions): Promise; }