import { Vim } from '../../../loader/vim';
import { Viewer } from '../../viewer';
import * as THREE from 'three';
import { SimpleInstanceSubmesh } from '../../../loader/mesh';
/**
 * Marker gizmo that display an interactive sphere at a 3D positions
 * Marker gizmos are still under development.
 */
export declare class GizmoMarker {
    readonly type = "Marker";
    private _viewer;
    private _submesh;
    /**
     * The vim object from which this object came from.
     */
    vim: Vim | undefined;
    /**
     * The bim element index associated with this object.
     */
    element: number | undefined;
    /**
     * The geometry instances  associated with this object.
     */
    instances: number[] | undefined;
    private _outlineAttribute;
    private _visibleAttribute;
    private _coloredAttribute;
    private _focusedAttribute;
    private _colorAttribute;
    constructor(viewer: Viewer, submesh: SimpleInstanceSubmesh);
    updateMesh(mesh: SimpleInstanceSubmesh): void;
    /** Sets the position of the marker in the 3d scene */
    set position(value: THREE.Vector3);
    get position(): THREE.Vector3;
    /**
     * Always false
     */
    get hasMesh(): boolean;
    /**
     * Applies a color override instead of outlines.
     */
    get outline(): boolean;
    set outline(value: boolean);
    /**
     * Enlarges the gizmo to indicate focus.
     */
    get focused(): boolean;
    set focused(value: boolean);
    /**
     * Determines if the gizmo will be rendered.
     */
    get visible(): boolean;
    set visible(value: boolean);
    get color(): THREE.Color;
    set color(color: THREE.Color);
    get size(): number;
    set size(value: number);
    /**
     * Retrieves the bounding box of the object from cache or computes it if needed.
     * Returns a unit box arount the marker position.
     * @returns {THREE.Box3 | undefined} The bounding box of the object.
     */
    getBoundingBox(): THREE.Box3;
}
