import { Vertex3 } from '../math';
import { TrackCoordinate3D } from './CoordinateTracker';
/**
 * Base class for tracked 3D points.
 * Point coordinates can be applied in both local and world space.
 */
export declare abstract class BimPointBase implements TrackCoordinate3D {
    protected _localX: number;
    protected _localY: number;
    protected _localZ: number;
    protected _worldX: number;
    protected _worldY: number;
    protected _worldZ: number;
    protected _recalculateLocalCoords: boolean;
    protected _recalculateWorldCoords: boolean;
    /** X coordinate of point in world space. */
    get x(): number;
    /** Set the X coordinate of point in world space. */
    set x(val: number);
    /** Y coordinate of point in world space. */
    get y(): number;
    /** Set the Y coordinate of point in world space. */
    set y(val: number);
    /** Z coordinate of point in world space. */
    get z(): number;
    /** Set the Z coordinate of point in world space. */
    set z(val: number);
    /** X coordinate of point in local space. */
    get localX(): number;
    /** Y coordinate of point in local space. */
    get localY(): number;
    /** Z coordinate of point in local space. */
    get localZ(): number;
    /**
     * Set coordinates in local space.
     * @param x X coordinate in local space.
     * @param y Y coordinate in local space.
     * @param z Z coordinate in local space.
     */
    setLocals(x: number, y: number, z: number): void;
    /**
     * @hidden
     */
    set recalculateWorldCoords(recalculate: boolean);
    protected abstract recalculateOrGetWorldCoords(force?: boolean): Vertex3;
    protected abstract recalculateOrGetLocalCoords(force?: boolean): Vertex3;
}
//# sourceMappingURL=BimPointBase.d.ts.map