import { Xfo, ColorParameter, Cross, TreeItem, Vec3, ZeaPointerEvent, ZeaMouseEvent, ZeaTouchEvent, BaseGeom, ZeaKeyboardEvent, XRController, XRControllerEvent, XRPoseEvent, LinesMaterial } from '@zeainc/zea-engine';
import BaseCreateTool from '../BaseCreateTool';
import { AppData } from '../../../types/types';
/**
 * Base class for creating geometry tools.
 *
 * @extends BaseCreateTool
 */
declare class CreateGeomTool extends BaseCreateTool {
    stage: number;
    removeToolOnRightClick: boolean;
    parentItem: TreeItem;
    colorParam: ColorParameter;
    vrControllerToolTipMat: LinesMaterial;
    vrControllerToolTip: BaseGeom | Cross;
    prevCursor: string;
    constructionPlane: Xfo;
    private activeController;
    /**
     * Create a create geom tool.
     *
     * @param appData - The appData value.
     */
    constructor(appData: AppData, parentItem: TreeItem);
    /**
     * Adds a geometry icon to the VR Controller
     * @param controller - The controller object.
     */
    addIconToVRController(controller: XRController): void;
    controllerAddedHandler(event: {
        controller: any;
    }): void;
    /**
     * The activateTool method.
     */
    activateTool(): void;
    /**
     * The deactivateTool method.
     */
    deactivateTool(): void;
    private setupConstructionPlane;
    /**
     * Transforms the screen position in the viewport to an Xfo object.
     *
     * @param event - The event param
     * @return {Xfo} The return value.
     */
    screenPosToXfo(event: ZeaMouseEvent | ZeaTouchEvent, snapToSurfaceUnderPointer?: boolean): Xfo;
    /**
     * Starts the creation of the geometry.
     *
     * @param xfo - The xfo param.
     */
    protected createStart(xfo: Xfo, event: ZeaPointerEvent): void;
    /**
     * The createPoint method.
     *
     * @param pt - The pt param.
     */
    protected createPoint(pt: Vec3, event?: ZeaPointerEvent): void;
    /**
     * The createMove method.
     *
     * @param pt - The pt param.
     */
    protected createMove(pt: Vec3, event: ZeaPointerEvent): void;
    /**
     * The createRelease method.
     *
     * @param pt - The pt param.
     */
    protected createRelease(pt: Vec3, event: ZeaPointerEvent): void;
    /**
     * Event fired when a pointing device button is pressed over the viewport while the tool is activated.
     *
     * @param event - The event param.
     */
    onPointerDown(event: ZeaPointerEvent): void;
    /**
     * Event fired when a pointing device is moved while the cursor's hotspot is inside the viewport, while tool is activated.
     *
     * @param event - The event param.
     */
    onPointerMove(event: ZeaPointerEvent): void;
    /**
     * Event fired when a pointing device button is released while the pointer is over the viewport, while the tool is activated.
     *
     * @param event - The event param.
     */
    onPointerUp(event: ZeaPointerEvent): void;
    /**
     * Event fired when the user rotates the pointing device wheel, while the tool is activated.
     *
     * @param event - The event param.
     */
    onWheel(event: ZeaPointerEvent): void;
    /**
     * Event fired when the user presses a key on the keyboard, while the tool is activated.
     *
     * @param event - The event param.
     */
    onKeyPressed(event: ZeaKeyboardEvent): void;
    /**
     * Event fired when the user presses down a key on the keyboard, while the tool is activated.
     *
     * @param event - The event param.
     */
    onKeyDown(event: ZeaKeyboardEvent): void;
    /**
     * Event fired when the user releases a key on the keyboard.
     *
     * @param event - The event param.
     */
    onKeyUp(event: ZeaKeyboardEvent): void;
    /**
     * Event fired when one or more touch points have been disrupted in an implementation-specific manner inside the viewport, when the tool is activated.
     *
     * @param event - The event param.
     */
    onTouchCancel(event: ZeaPointerEvent): void;
    /**
     * Event fired when a VR controller button is pressed inside the viewport, when the tool is activated.
     *
     * @param event - The event param.
     */
    onXRControllerButtonDown(event: XRControllerEvent): void;
    /**
     * The onXRPoseChanged method.
     *
     * @param event - The event param.
     */
    onXRPoseChanged(event: XRPoseEvent): void;
    /**
     * Event fired when a VR controller button is released inside the viewport, when the tool is activated.
     *
     * @param event - The event param.
     */
    onVRControllerButtonUp(event: XRControllerEvent): void;
}
export default CreateGeomTool;
export { CreateGeomTool };
//# sourceMappingURL=CreateGeomTool.d.ts.map