/**
 * Base class common for TextArea and ImageArea, possibly more to come.
 * Provides methods to attach the area to HUD or camera, and common variables.
 */
export class BaseArea {
    constructor(scene: any, name: any);
    scene: any;
    name: any;
    size: number;
    position: any;
    addHandles: boolean;
    canMinimize: boolean;
    canClose: boolean;
    onClose: any;
    group: any;
    attachedToHud: boolean;
    attachedToCamera: boolean;
    areaPlane: any;
    /** @type {ManipulationHandles} */
    handles: ManipulationHandles;
    texture: any;
    /** Subclasses dispose of material, if they create it */
    material: any;
    billboardMode: any;
    /**
     * Attach it to the HUD. It does not resize automatically, just sets the parent.
     * Optionally also attaches handles to the hud, if they are active.
     */
    attachToHud(): void;
    /**
     * Attach it to the camera. It does not resize automatically, just sets the parent.
     * It does not automatically switch to another camera if active camera changes.
     * @param camera currently active camera
     */
    attachToCamera(camera?: any): void;
    /**
     * Detach from whatever attached to, i.e. drop it where you stand.
     * @param {number} [offset=this.position.z] how far away from the camera to drop it, defaults to current z position (assuming it's attached to HUD or camera)
     */
    detach(offset?: number): void;
    /**
    * Removes manipulation handles.
    */
    removeHandles(): void;
    /**
    * XR pointer support
    */
    isSelectableMesh(mesh: any): any;
    /** Clean up allocated resources */
    dispose(): void;
}
import { ManipulationHandles } from "./manipulation-handles.js";
