UNPKG

ring-client-api

Version:

Unofficial API for Ring doorbells, cameras, security alarm system and smart lighting

90 lines (89 loc) 4.95 kB
import type { Observable } from 'rxjs'; import { WebSocket } from 'undici'; import { BehaviorSubject, ReplaySubject, Subject } from 'rxjs'; import type { AccountMonitoringStatus, AlarmMode, AssetSession, MessageDataType, MessageType, RingDeviceData, SocketIoMessage, TicketAsset, UserLocation, CameraEventResponse, CameraEventOptions, HistoryOptions, RingDeviceHistoryEvent, LocationModeResponse, LocationModeSettings, LocationMode, LocationModeSharing, LocationModeSettingsResponse, LocationModeInput } from './ring-types.ts'; import type { RingRestClient } from './rest-client.ts'; import type { RingCamera } from './ring-camera.ts'; import type { RingChime } from './ring-chime.ts'; import { RingDevice } from './ring-device.ts'; import type { RingIntercom } from './ring-intercom.ts'; import { Subscribed } from './subscribed.ts'; export declare class Location extends Subscribed { private seq; onMessage: Subject<SocketIoMessage>; onDataUpdate: Subject<SocketIoMessage>; onDeviceDataUpdate: Observable<RingDeviceData>; onDeviceList: Observable<SocketIoMessage>; onDevices: Observable<RingDevice[]>; onSessionInfo: Observable<AssetSession[]>; onConnected: BehaviorSubject<boolean>; onLocationMode: ReplaySubject<LocationMode>; private onLocationModeRequested; reconnecting: boolean; private disconnected; connectionPromise?: Promise<WebSocket>; securityPanel?: RingDevice; assets?: TicketAsset[]; receivedAssetDeviceLists: string[]; offlineAssets: string[]; hasHubs: boolean; hasAlarmBaseStation: boolean; readonly locationDetails: UserLocation; readonly cameras: RingCamera[]; readonly chimes: RingChime[]; readonly intercoms: RingIntercom[]; readonly options: { hasHubs: boolean; hasAlarmBaseStation: boolean; locationModePollingSeconds?: number; }; private restClient; constructor(locationDetails: UserLocation, cameras: RingCamera[], chimes: RingChime[], intercoms: RingIntercom[], options: { hasHubs: boolean; hasAlarmBaseStation: boolean; locationModePollingSeconds?: number; }, restClient: RingRestClient); get id(): string; get locationId(): string; get name(): string; createConnection(): Promise<WebSocket>; getConnection(): Promise<WebSocket>; sendMessage(message: { msg: MessageType; datatype?: MessageDataType; dst: string; body?: any; seq?: number; }): Promise<void>; sendCommandToSecurityPanel(commandType: string, data?: Record<string, unknown>): Promise<void>; setAlarmMode(alarmMode: AlarmMode, bypassSensorZids?: string[]): Promise<void>; getAlarmMode(): Promise<AlarmMode>; soundSiren(): Promise<void>; silenceSiren(): Promise<void>; setLightGroup(groupId: string, on: boolean, durationSeconds?: number): Promise<any>; getNextMessageOfType(type: MessageType, src: string): Promise<any[]>; requestList(listType: MessageType, assetId: string): Promise<void>; getList(listType: MessageType, assetId: string): Promise<any[]>; getDevices(): Promise<RingDevice[]>; getRoomList(assetId: string): Promise<any[]>; getSecurityPanel(): Promise<RingDevice>; disarm(): Promise<void>; armHome(bypassSensorZids?: string[]): Promise<void>; armAway(bypassSensorZids?: string[]): Promise<void>; getHistory(options?: HistoryOptions): Promise<RingDeviceHistoryEvent[] & import("./rest-client.ts").ExtendedResponse>; getCameraEvents(options?: CameraEventOptions): Promise<CameraEventResponse & import("./rest-client.ts").ExtendedResponse>; getAccountMonitoringStatus(): Promise<AccountMonitoringStatus & import("./rest-client.ts").ExtendedResponse>; private triggerAlarm; triggerBurglarAlarm(): Promise<AccountMonitoringStatus & import("./rest-client.ts").ExtendedResponse>; triggerFireAlarm(): Promise<AccountMonitoringStatus & import("./rest-client.ts").ExtendedResponse>; getLocationMode(): Promise<LocationModeResponse & import("./rest-client.ts").ExtendedResponse>; setLocationMode(mode: LocationModeInput): Promise<LocationModeResponse & import("./rest-client.ts").ExtendedResponse>; disableLocationModes(): Promise<void>; enableLocationModes(): Promise<LocationModeSettingsResponse & import("./rest-client.ts").ExtendedResponse>; getLocationModeSettings(): Promise<LocationModeSettingsResponse & import("./rest-client.ts").ExtendedResponse>; setLocationModeSettings(settings: LocationModeSettings): Promise<LocationModeSettingsResponse & import("./rest-client.ts").ExtendedResponse>; getLocationModeSharing(): Promise<LocationModeSharing & import("./rest-client.ts").ExtendedResponse>; setLocationModeSharing(sharedUsersEnabled: boolean): Promise<LocationModeSharing & import("./rest-client.ts").ExtendedResponse>; supportsLocationModeSwitching(): Promise<boolean>; disconnect(): void; }