import { Color, Xfo, NumberParameter, XfoParameter, ZeaPointerEvent } from '@zeainc/zea-engine';
import { Handle } from './Handle';
import './Shaders/HandleShader';
/**
 * Class representing a slider scene widget with an arc shape. There are two parts in this widget, the slider and the handle.<br>
 * The **Handle** is the moving part of the widget, the object you interact with. The **Slider** is the path that the **handle** follows.
 *
 *
 * **Parameters**
 * * **ArcRadius(`NumberParameter`):** Specifies the radius of the slider.
 * * **ArcAngle(`NumberParameter`):** Specifies the arc angle of the slider.
 * * **HandleRadius(`NumberParameter`):** Specifies the radius of the handle in the slider.
 *
 * **Events**
 * * **dragStart:** Triggered when the pointer is down.
 * * **dragEnd:** Triggered when the pointer is released.
 *
 * @extends Handle
 */
declare class ArcSlider extends Handle {
    param: XfoParameter | NumberParameter;
    arcRadiusParam: NumberParameter;
    arcAngleParam: NumberParameter;
    handleRadiusParam: NumberParameter;
    range: Array<number>;
    private handleMat;
    private handle;
    private arc;
    private baseXfo;
    private handleXfo;
    private vec0;
    private change;
    private handleGeomOffsetXfo;
    /**
     * Creates an instance of ArcSlider.
     *
     * @param name - The name value
     * @param [arcRadius=1] - The arcRadius value
     * @param [arcAngle=1] - The arcAngle value
     * @param [handleRadius=0.02] - The handleRadius value
     * @param [color=new Color(1, 1, 0)] - the color value
     */
    constructor(name?: string, arcRadius?: number, arcAngle?: number, handleRadius?: number, color?: Color);
    /**
     * 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;
    /**
     * 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;
    /**
     * Sets global xfo target parameter
     *
     * @param param - The parameter that will be modified during manipulation
     * @param track - The track param.
     */
    setTargetParam(param: XfoParameter | NumberParameter, track?: boolean): void;
    /**
     * Returns handle's global Xfo
     *
     * @return {Xfo} - The Xfo value
     */
    getBaseXfo(): Xfo;
    /**
     * Handles the initially drag interaction of the handle.
     *
     * @param event - The event param.
     */
    onDragStart(event: ZeaPointerEvent): void;
    /**
     * Handles drag interaction of the handle.
     *
     * @param event - The event param.
     */
    onDrag(event: ZeaPointerEvent): void;
    /**
     * Handles the end of dragging interaction with the handle.
     *
     * @param event - The event param.
     */
    onDragEnd(event: ZeaPointerEvent): void;
    /**
     * Serializes handle item as a JSON object.
     *
     * @param context - The context param.
     * @return {object} The return value.
     */
    toJSON(context: Record<string, any>): Record<string, any>;
    /**
     * Restores handle item from a JSON object.
     *
     * @param json - The json param.
     * @param context - The context param.
     */
    fromJSON(json: Record<string, any>, context: Record<string, any>): void;
}
export default ArcSlider;
export { ArcSlider };
//# sourceMappingURL=ArcSlider.d.ts.map