import { SceneViewAPIClient } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb_service'; import { JwtProvider } from '../grpc'; import { MeasurementEntity } from './entities'; import { MeasurementModel } from './model'; import { MeasurementOutcome } from './outcomes'; /** * The `MeasurementController` is responsible for performing measurements of * registered entities, and updating the model with their measurement results. */ export declare class MeasurementController { private model; private client; private jwtProvider; private deviceId; private outcome; private debugLogs; constructor(model: MeasurementModel, client: SceneViewAPIClient, jwtProvider: JwtProvider, deviceId: string | undefined); /** * Registers an entity to measure and performs a measurement if this entity * has not been previously registered. * * @param entity The entity to measure. * @returns A promise that resolves with the results after registering this * entity. */ addEntity(entity: MeasurementEntity): Promise; /** * Clears all entities and returns a promise that resolves with an empty list * of measurement results. */ clearEntities(): Promise; /** * Deregisters an entity and performs a measurement if this entity was * removed. * * @param entity The entity to remove. * @returns A promise that resolves with the results after removing this * entity. */ removeEntity(entity: MeasurementEntity): Promise; /** * Registers a set of entities and performs a measurement * * @param entities The entities to measure. * @returns A promise that resolves with the results after registering these * entities. */ setEntities(entities: Set): Promise; setDebugLogs(debugLogs: boolean): void; private performMeasurement; private measureAndUpdateModel; private measureEntities; private highlightEntities; private log; }