UNPKG

@koush/ring-client-api

Version:

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

87 lines (86 loc) 4.79 kB
import { Socket as SocketIOSocket } from 'socket.io-client'; import { BehaviorSubject, Observable, ReplaySubject, Subject } from 'rxjs'; import { AccountMonitoringStatus, AlarmMode, AssetSession, MessageDataType, MessageType, RingDeviceData, SocketIoMessage, TicketAsset, UserLocation, CameraEventResponse, CameraEventOptions, HistoryOptions, RingDeviceHistoryEvent, LocationModeResponse, LocationModeSettings, LocationMode, LocationModeSharing, LocationModeSettingsResponse, LocationModeInput } from './ring-types'; import { RingRestClient } from './rest-client'; import { RingCamera } from './ring-camera'; import { RingChime } from './ring-chime'; import { RingDevice } from './ring-device'; import { Subscribed } from './subscribed'; export declare class Location extends Subscribed { readonly locationDetails: UserLocation; readonly cameras: RingCamera[]; readonly chimes: RingChime[]; readonly options: { hasHubs: boolean; hasAlarmBaseStation: boolean; locationModePollingSeconds?: number; }; private restClient; 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<typeof SocketIOSocket>; securityPanel?: RingDevice; assets?: TicketAsset[]; receivedAssetDeviceLists: string[]; offlineAssets: string[]; hasHubs: boolean; hasAlarmBaseStation: boolean; constructor(locationDetails: UserLocation, cameras: RingCamera[], chimes: RingChime[], options: { hasHubs: boolean; hasAlarmBaseStation: boolean; locationModePollingSeconds?: number; }, restClient: RingRestClient); get id(): string; get locationId(): string; get name(): string; createConnection(): Promise<typeof SocketIOSocket>; getConnection(): Promise<SocketIOClient.Socket>; 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").ExtendedResponse>; getCameraEvents(options?: CameraEventOptions): Promise<CameraEventResponse & import("./rest-client").ExtendedResponse>; getAccountMonitoringStatus(): Promise<AccountMonitoringStatus & import("./rest-client").ExtendedResponse>; private triggerAlarm; triggerBurglarAlarm(): Promise<AccountMonitoringStatus & import("./rest-client").ExtendedResponse>; triggerFireAlarm(): Promise<AccountMonitoringStatus & import("./rest-client").ExtendedResponse>; getLocationMode(): Promise<LocationModeResponse & import("./rest-client").ExtendedResponse>; setLocationMode(mode: LocationModeInput): Promise<LocationModeResponse & import("./rest-client").ExtendedResponse>; disableLocationModes(): Promise<void>; enableLocationModes(): Promise<LocationModeSettingsResponse & import("./rest-client").ExtendedResponse>; getLocationModeSettings(): Promise<LocationModeSettingsResponse & import("./rest-client").ExtendedResponse>; setLocationModeSettings(settings: LocationModeSettings): Promise<LocationModeSettingsResponse & import("./rest-client").ExtendedResponse>; getLocationModeSharing(): Promise<LocationModeSharing & import("./rest-client").ExtendedResponse>; setLocationModeSharing(sharedUsersEnabled: boolean): Promise<LocationModeSharing & import("./rest-client").ExtendedResponse>; supportsLocationModeSwitching(): Promise<boolean>; disconnect(): void; }