| import * as graphic from '../../util/graphic.js'; | 
| import { AxisPointer } from './AxisPointer.js'; | 
| import { AxisBaseModel } from '../../coord/AxisBaseModel.js'; | 
| import ExtensionAPI from '../../core/ExtensionAPI.js'; | 
| import Element from 'zrender/lib/Element.js'; | 
| import { VerticalAlign, HorizontalAlign, CommonAxisPointerOption } from '../../util/types.js'; | 
| import { PathProps } from 'zrender/lib/graphic/Path.js'; | 
| import Model from '../../model/Model.js'; | 
| import { TextProps } from 'zrender/lib/graphic/Text.js'; | 
| interface Transform { | 
|     x: number; | 
|     y: number; | 
|     rotation: number; | 
| } | 
| declare type AxisValue = CommonAxisPointerOption['value']; | 
| declare type AxisPointerModel = Model<CommonAxisPointerOption>; | 
| interface BaseAxisPointer { | 
|     /** | 
|      * Should be implemenented by sub-class if support `handle`. | 
|      */ | 
|     getHandleTransform(value: AxisValue, axisModel: AxisBaseModel, axisPointerModel: AxisPointerModel): Transform; | 
|     /** | 
|      * * Should be implemenented by sub-class if support `handle`. | 
|      */ | 
|     updateHandleTransform(transform: Transform, delta: number[], axisModel: AxisBaseModel, axisPointerModel: AxisPointerModel): Transform & { | 
|         cursorPoint: number[]; | 
|         tooltipOption?: { | 
|             verticalAlign?: VerticalAlign; | 
|             align?: HorizontalAlign; | 
|         }; | 
|     }; | 
| } | 
| export interface AxisPointerElementOptions { | 
|     graphicKey: string; | 
|     pointer: PathProps & { | 
|         type: 'Line' | 'Rect' | 'Circle' | 'Sector'; | 
|     }; | 
|     label: TextProps; | 
| } | 
| /** | 
|  * Base axis pointer class in 2D. | 
|  */ | 
| declare class BaseAxisPointer implements AxisPointer { | 
|     private _group; | 
|     private _lastGraphicKey; | 
|     private _handle; | 
|     private _dragging; | 
|     private _lastValue; | 
|     private _lastStatus; | 
|     private _payloadInfo; | 
|     /** | 
|      * If have transition animation | 
|      */ | 
|     private _moveAnimation; | 
|     private _axisModel; | 
|     private _axisPointerModel; | 
|     private _api; | 
|     /** | 
|      * In px, arbitrary value. Do not set too small, | 
|      * no animation is ok for most cases. | 
|      */ | 
|     protected animationThreshold: number; | 
|     /** | 
|      * @implement | 
|      */ | 
|     render(axisModel: AxisBaseModel, axisPointerModel: AxisPointerModel, api: ExtensionAPI, forceRender?: boolean): void; | 
|     /** | 
|      * @implement | 
|      */ | 
|     remove(api: ExtensionAPI): void; | 
|     /** | 
|      * @implement | 
|      */ | 
|     dispose(api: ExtensionAPI): void; | 
|     /** | 
|      * @protected | 
|      */ | 
|     determineAnimation(axisModel: AxisBaseModel, axisPointerModel: AxisPointerModel): boolean; | 
|     /** | 
|      * add {pointer, label, graphicKey} to elOption | 
|      * @protected | 
|      */ | 
|     makeElOption(elOption: AxisPointerElementOptions, value: AxisValue, axisModel: AxisBaseModel, axisPointerModel: AxisPointerModel, api: ExtensionAPI): void; | 
|     /** | 
|      * @protected | 
|      */ | 
|     createPointerEl(group: graphic.Group, elOption: AxisPointerElementOptions, axisModel: AxisBaseModel, axisPointerModel: AxisPointerModel): void; | 
|     /** | 
|      * @protected | 
|      */ | 
|     createLabelEl(group: graphic.Group, elOption: AxisPointerElementOptions, axisModel: AxisBaseModel, axisPointerModel: AxisPointerModel): void; | 
|     /** | 
|      * @protected | 
|      */ | 
|     updatePointerEl(group: graphic.Group, elOption: AxisPointerElementOptions, updateProps: (el: Element, props: PathProps) => void): void; | 
|     /** | 
|      * @protected | 
|      */ | 
|     updateLabelEl(group: graphic.Group, elOption: AxisPointerElementOptions, updateProps: (el: Element, props: PathProps) => void, axisPointerModel: AxisPointerModel): void; | 
|     /** | 
|      * @private | 
|      */ | 
|     _renderHandle(value: AxisValue): void; | 
|     private _moveHandleToValue; | 
|     private _onHandleDragMove; | 
|     /** | 
|      * Throttled method. | 
|      */ | 
|     _doDispatchAxisPointer(): void; | 
|     private _onHandleDragEnd; | 
|     /** | 
|      * @private | 
|      */ | 
|     clear(api: ExtensionAPI): void; | 
|     /** | 
|      * @protected | 
|      */ | 
|     doClear(): void; | 
|     buildLabel(xy: number[], wh: number[], xDimIndex: 0 | 1): { | 
|         x: number; | 
|         y: number; | 
|         width: number; | 
|         height: number; | 
|     }; | 
| } | 
| export default BaseAxisPointer; |