import { JSX } from '../../stencil-public-runtime';
import { PartialConfig } from '../../lib/config';
import { Environment } from '../../lib/environment';
import { MeasurementController, MeasurementModel, MeasurementOverlayManager } from '../../lib/measurement';
import { EntityType } from '../../lib/types';
export declare class ViewerMeasurementPrecise {
    /**
     * The model that contains the entities and outcomes from performing precise
     * measurements.
     */
    measurementModel: MeasurementModel;
    /**
     * The manager that is responsible for measurement overlays to present by this
     * component.
     */
    measurementOverlays: MeasurementOverlayManager;
    /**
     * The controller that is responsible for performing measurements and updating
     * the model.
     */
    measurementController?: MeasurementController;
    /**
     * @internal
     *
     * An internal property that can be used to opt-in to performing measurements
     * on other types of entities.
     */
    measurableEntityTypes: EntityType[];
    /**
     * The viewer that this component is bound to. This is automatically assigned
     * if added to the light-dom of a parent viewer element.
     */
    viewer?: HTMLVertexViewerElement;
    /**
     * The environment that will be used to request measurement results.
     */
    configEnv: Environment;
    /**
     * An optional configuration to setup network configuration of measurement
     * endpoints.
     */
    config?: PartialConfig | string;
    private registeredInteractionHandler?;
    /**
     * @ignore
     */
    protected connectedCallback(): void;
    /**
     * @ignore
     */
    protected componentWillLoad(): void;
    /**
     * @ignore
     */
    protected disconnectedCallback(): void;
    /**
     * @ignore
     */
    protected handleMeasurableEntityTypesChanged(): void;
    /**
     * @ignore
     */
    protected handleMeasurementControllerChanged(): void;
    /**
     * @ignore
     */
    protected handleMeasurementModelChanged(): void;
    /**
     * @ignore
     */
    protected handleViewerChanged(): void;
    /**
     * @ignore
     */
    protected render(): JSX.Element;
    private setupController;
    private clearInteractionHandler;
    private setupInteractionHandler;
}
