/// import { CameraData, CameraDeviceSettingsData, CameraEventOptions, CameraEventResponse, CameraHealth, HistoryOptions, PeriodicFootageResponse, PushNotification, PushNotificationDing, VideoSearchResponse, OnvifCameraData, RingCameraKind } from './ring-types'; import { RingRestClient } from './rest-client'; import { BehaviorSubject, Subject } from 'rxjs'; import { DeepPartial } from './util'; import { Subscribed } from './subscribed'; import { StreamingConnectionOptions } from './streaming/webrtc-connection'; import { FfmpegOptions, StreamingSession } from './streaming/streaming-session'; import { SimpleWebRtcSession } from './streaming/simple-webrtc-session'; export type AnyCameraData = CameraData | OnvifCameraData; export declare function getBatteryLevel(data: Pick & { health?: Partial; }): number | null; export declare function getSearchQueryString(options: CameraEventOptions | (HistoryOptions & { accountId: string; })): string; export declare function cleanSnapshotUuid(uuid?: string | null): string | null | undefined; export declare class RingCamera extends Subscribed { private initialData; isDoorbot: boolean; private restClient; private avoidSnapshotBatteryDrain; id: number; deviceType: RingCameraKind.onvif_camera | Omit; model: string; onData: BehaviorSubject; hasLight: boolean; hasSiren: boolean; onRequestUpdate: Subject; onNewNotification: Subject; onActiveNotifications: BehaviorSubject; onDoorbellPressed: import("rxjs").Observable; onMotionDetected: import("rxjs").Observable; onMotionStarted: import("rxjs").Observable; onBatteryLevel: import("rxjs").Observable; onInHomeDoorbellStatus: import("rxjs").Observable; constructor(initialData: AnyCameraData, isDoorbot: boolean, restClient: RingRestClient, avoidSnapshotBatteryDrain: boolean); updateData(update: AnyCameraData): void; requestUpdate(): void; get data(): AnyCameraData; get name(): string; get activeNotifications(): PushNotificationDing[]; get latestNotification(): PushNotificationDing | undefined; get latestNotificationSnapshotUuid(): string | undefined; get batteryLevel(): number | null; get hasBattery(): boolean; get hasLowBattery(): boolean; get isCharging(): boolean; get operatingOnBattery(): boolean; get isOffline(): boolean; get isRingEdgeEnabled(): boolean; get hasInHomeDoorbell(): boolean; doorbotUrl(path?: string): string; deviceUrl(path?: string): string; setLight(on: boolean): Promise; setSiren(on: boolean): Promise; setSettings(settings: DeepPartial): Promise; setDeviceSettings(settings: DeepPartial): Promise; getDeviceSettings(): Promise; setInHomeDoorbell(enable: boolean): Promise; getHealth(): Promise; private createStreamingConnection; startLiveCall(options?: StreamingConnectionOptions): Promise; private removeDingById; processPushNotification(notification: PushNotification): void; getEvents(options?: CameraEventOptions): Promise; videoSearch({ dateFrom, dateTo, order }?: { dateFrom: number; dateTo: number; order?: string | undefined; }): Promise; getPeriodicalFootage({ startAtMs, endAtMs }?: { startAtMs: number; endAtMs: number; }): Promise; getRecordingUrl(dingIdStr: string, { transcoded }?: { transcoded?: boolean | undefined; }): Promise; private isTimestampInLifeTime; get snapshotsAreBlocked(): boolean; get snapshotLifeTime(): number; private lastSnapshotTimestamp; private lastSnapshotTimestampLocal; private lastSnapshotPromise?; get currentTimestampAge(): number; get hasSnapshotWithinLifetime(): boolean; private checkIfSnapshotsAreBlocked; private shouldUseExistingSnapshotPromise; private fetchingSnapshot; getSnapshot({ uuid }?: { uuid?: string; }): Promise; getNextSnapshot({ afterMs, maxWaitMs, force, uuid, }: { afterMs?: number; maxWaitMs?: number; force?: boolean; uuid?: string; }): Promise; getSnapshotByUuid(uuid: string): Promise; recordToFile(outputPath: string, duration?: number): Promise; streamVideo(ffmpegOptions: FfmpegOptions): Promise; /** * Returns a SimpleWebRtcSession, which can be initiated with an sdp offer. * This session has no backplane for trickle ICE, and is designed for use in a * browser setting. Note, cameras with Ring Edge enabled will stream with the speaker * enabled as soon as the stream starts, which can drain the battery more quickly. */ createSimpleWebRtcSession(): SimpleWebRtcSession; subscribeToDingEvents(): Promise; unsubscribeFromDingEvents(): Promise; subscribeToMotionEvents(): Promise; unsubscribeFromMotionEvents(): Promise; disconnect(): void; }