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.
* 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;
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): Record;
/**
* Restores handle item from a JSON object.
*
* @param json - The json param.
* @param context - The context param.
*/
fromJSON(json: Record, context: Record): void;
}
export default ArcSlider;
export { ArcSlider };
//# sourceMappingURL=ArcSlider.d.ts.map