/*! Copyright (c) 2018 Siemens AG. Licensed under the MIT License. */ import { Observable } from "rxjs"; import { Controller, Uuid } from ".."; import { Observation, Sensor } from "./objects"; /** * Observes Sensors and Sensor-related objects. This controller is designed to * be used by a client as a counterpart to a SensorSourceController which should * answer its requests. */ export declare class SensorObserverController extends Controller { /** * Observe the channeled observations for the given Sensor. By default, the * channelId is the same as the sensorId. * * @param sensorId ObjectId of the sensor to listen observations of. * @param channelId ChannelId to listen to. This is by default the objectId * of the Sensor and therefore should be left undefined. (optional) */ observeChanneledObservations(sensorId: Uuid, channelId?: string): Observable; /** * Observe the advertised observations for the given Sensor. * * @param sensorId ObjectId of the sensor to listen observations of. */ observeAdvertisedObservations(sensorId: Uuid): Observable; /** * Returns an observable emitting advertised Sensors. * * This method does not perform any kind of caching and it should * be performed on the application-side. */ observeAdvertisedSensors(): Observable; /** * Returns an observable of the Sensors in the system. * * This is performed by sending a Discovery event with the object type of * Sensor. * * This method does not perform any kind of caching and it should be * performed on the application-side. */ discoverSensors(): Observable; /** * Returns an observable of the Sensors that are associated with this Thing. * * This is performed by sending a Query event for Sensor objects with the * parentObjectId matching the objectId of the Thing. * * This method does not perform any kind of caching and it should be * performed on the application-side. */ querySensorsOfThing(thingId: Uuid): Observable; }