import { TreeItem, Ray, ColorParameter, Parameter, Vec3, ZeaWheelEvent, ZeaPointerEvent, XRControllerEvent, XRPoseEvent } from '@zeainc/zea-engine';
/**
 * A Handle is an UI widget that lives in the scene, it translates a series of pointer events into a higher level interaction.
 *
 * **Parameters**
 * * **Color(`ColorParameter`):** Specifies the color of the handle.
 * * **HighlightColor(`ColorParameter`):** Specifies the highlight color of the handle.
 *
 * @extends TreeItem
 */
declare class Handle extends TreeItem {
    gizmoRay: Ray;
    activeController: any;
    captured: boolean;
    colorParam: ColorParameter;
    highlightColorParam: ColorParameter;
    grabPos: Vec3;
    holdPos: Vec3;
    holdDist: number;
    value: number | Vec3 | number[];
    delta: number | Vec3 | number[];
    releasePos: Vec3;
    /**
     * Creates an instance of Handle.
     *
     * @param name - The name value.
     */
    constructor(name?: string);
    /**
     * highlight the handle to indicate it is under the mouse.
     */
    highlight(): void;
    /**
     * Removes the highlight from the handle once the mouse moves away.
     */
    unhighlight(): void;
    /**
     * Returns the manipulation plane of the handle, denoting a start and a direction.
     *
     * @return {Ray} The return value.
     */
    getManipulationPlane(): Ray;
    /**
     * Event fired when a pointing device is initially moved within the space of the handle.
     *
     * @param event - The event param.
     */
    onPointerEnter(event: ZeaPointerEvent): void;
    /**
     * Event fired when a pointing device moves outside of the space of the handle.
     *
     * @param event - The event param.
     */
    onPointerLeave(event: ZeaPointerEvent): void;
    /**
     * Event fired when a pointing device button is pressed while the pointer is over the handle element.
     *
     * @param event - The event param.
     */
    onPointerDown(event: ZeaPointerEvent): void;
    /**
     * Event fired when a pointing device is moved while the cursor's hotspot is over the handle.
     *
     * @param event - The event param.
     */
    onPointerMove(event: ZeaPointerEvent): void;
    /**
     * Event fired when a pointing device button is released while the pointer is over the handle.
     *
     * @param event - The event param.
     */
    onPointerUp(event: ZeaPointerEvent): void;
    onPointerClick(event: ZeaPointerEvent): void;
    onPointerDoubleClick(event: ZeaPointerEvent): void;
    /**
     * Event fired when the user rotates the pointing device wheel over the handle.
     *
     * @param event - The event param.
     */
    onWheel(event: ZeaWheelEvent): void;
    /**
     * Handles mouse down interaction with the handle.
     *
     * @param event - The event param.
     */
    handlePointerDown(event: ZeaPointerEvent): void;
    /**
     * Handles mouse move interaction with the handle.
     *
     * @param event - The event param
     */
    handlePointerMove(event: ZeaPointerEvent): void;
    /**
     * Handles mouse up interaction with the handle.
     *
     * @param event - The event param.
     */
    handlePointerUp(event: ZeaPointerEvent): void;
    /**
     * Event fired when a VR controller button is pressed over the handle.
     *
     * @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 over the handle.
     *
     * @param event - The event param.
     */
    onVRControllerButtonUp(event: XRControllerEvent): void;
    /**
     * Handles the initially drag of the handle.
     *
     * @param event - The event param.
     */
    onDragStart(event: ZeaPointerEvent): void;
    /**
     * Handles drag action of the handle.
     *
     * @param event - The event param.
     */
    onDrag(event: ZeaPointerEvent): void;
    /**
     * Handles the end of dragging the handle.
     *
     * @param event - The event param.
     */
    onDragEnd(event?: ZeaPointerEvent): void;
    /**
     * Sets the target parameter for manipulation
     *
     * @param param - The parameter that will be modified during manipulation
     */
    setTargetParam(param: Parameter<unknown>): void;
}
export default Handle;
export { Handle };
//# sourceMappingURL=Handle.d.ts.map