import { Color, Xfo, NumberParameter, GeomItem, Parameter, ZeaPointerEvent, FlatSurfaceMaterial } from '@zeainc/zea-engine';
import BaseLinearMovementHandle from './BaseLinearMovementHandle';
import ParameterValueChange from '../UndoRedo/Changes/ParameterValueChange';
/**
* Class representing a slider scene widget. 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**
* * **Length(`NumberParameter`):** Specifies the length of the slider.
* * **HandleRadius(`NumberParameter`):** Specifies the handle radius.
* * **BarRadius(`NumberParameter`):** Specifies the radius of the slider.
*
*
* @extends BaseLinearMovementHandle
*/
declare class SliderHandle extends BaseLinearMovementHandle {
param: Parameter;
lengthParam: NumberParameter;
barRadiusParam: NumberParameter;
handleRadiusParam: NumberParameter;
handleMat: FlatSurfaceMaterial;
handle: GeomItem;
baseBar: GeomItem;
topBar: GeomItem;
handleXfo: Xfo;
baseBarXfo: Xfo;
topBarXfo: Xfo;
change: ParameterValueChange;
/**
* Create a slider scene widget.
*
* @param name - The name value.
* @param length - The length value.
* @param radius - The radius value.
* @param color - The color value.
*/
constructor(name?: string, length?: number, radius?: number, color?: Color);
/**
* 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
*/
setTargetParam(param: Parameter): void;
/**
*
*
* @param value -
* @private
*/
__updateSlider(value: number): 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;
/**
* 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 SliderHandle;
export { SliderHandle };
//# sourceMappingURL=SliderHandle.d.ts.map