| import { createAxisLabels, calculateCategoryInterval } from './axisTickLabelBuilder.js'; | 
| import Scale from '../scale/Scale.js'; | 
| import { DimensionName, ScaleDataValue, ScaleTick } from '../util/types.js'; | 
| import Model from '../model/Model.js'; | 
| import { AxisBaseOption, CategoryAxisBaseOption, OptionAxisType } from './axisCommonTypes.js'; | 
| import { AxisBaseModel } from './AxisBaseModel.js'; | 
| interface TickCoord { | 
|     coord: number; | 
|     tickValue?: ScaleTick['value']; | 
| } | 
| /** | 
|  * Base class of Axis. | 
|  */ | 
| declare class Axis { | 
|     /** | 
|      * Axis type | 
|      *  - 'category' | 
|      *  - 'value' | 
|      *  - 'time' | 
|      *  - 'log' | 
|      */ | 
|     type: OptionAxisType; | 
|     readonly dim: DimensionName; | 
|     scale: Scale; | 
|     private _extent; | 
|     model: AxisBaseModel; | 
|     onBand: CategoryAxisBaseOption['boundaryGap']; | 
|     inverse: AxisBaseOption['inverse']; | 
|     constructor(dim: DimensionName, scale: Scale, extent: [number, number]); | 
|     /** | 
|      * If axis extent contain given coord | 
|      */ | 
|     contain(coord: number): boolean; | 
|     /** | 
|      * If axis extent contain given data | 
|      */ | 
|     containData(data: ScaleDataValue): boolean; | 
|     /** | 
|      * Get coord extent. | 
|      */ | 
|     getExtent(): [number, number]; | 
|     /** | 
|      * Get precision used for formatting | 
|      */ | 
|     getPixelPrecision(dataExtent?: [number, number]): number; | 
|     /** | 
|      * Set coord extent | 
|      */ | 
|     setExtent(start: number, end: number): void; | 
|     /** | 
|      * Convert data to coord. Data is the rank if it has an ordinal scale | 
|      */ | 
|     dataToCoord(data: ScaleDataValue, clamp?: boolean): number; | 
|     /** | 
|      * Convert coord to data. Data is the rank if it has an ordinal scale | 
|      */ | 
|     coordToData(coord: number, clamp?: boolean): number; | 
|     /** | 
|      * Convert pixel point to data in axis | 
|      */ | 
|     pointToData(point: number[], clamp?: boolean): number; | 
|     /** | 
|      * Different from `zrUtil.map(axis.getTicks(), axis.dataToCoord, axis)`, | 
|      * `axis.getTicksCoords` considers `onBand`, which is used by | 
|      * `boundaryGap:true` of category axis and splitLine and splitArea. | 
|      * @param opt.tickModel default: axis.model.getModel('axisTick') | 
|      * @param opt.clamp If `true`, the first and the last | 
|      *        tick must be at the axis end points. Otherwise, clip ticks | 
|      *        that outside the axis extent. | 
|      */ | 
|     getTicksCoords(opt?: { | 
|         tickModel?: Model; | 
|         clamp?: boolean; | 
|     }): TickCoord[]; | 
|     getMinorTicksCoords(): TickCoord[][]; | 
|     getViewLabels(): ReturnType<typeof createAxisLabels>['labels']; | 
|     getLabelModel(): Model<AxisBaseOption['axisLabel']>; | 
|     /** | 
|      * Notice here we only get the default tick model. For splitLine | 
|      * or splitArea, we should pass the splitLineModel or splitAreaModel | 
|      * manually when calling `getTicksCoords`. | 
|      * In GL, this method may be overridden to: | 
|      * `axisModel.getModel('axisTick', grid3DModel.getModel('axisTick'));` | 
|      */ | 
|     getTickModel(): Model; | 
|     /** | 
|      * Get width of band | 
|      */ | 
|     getBandWidth(): number; | 
|     /** | 
|      * Get axis rotate, by degree. | 
|      */ | 
|     getRotate: () => number; | 
|     /** | 
|      * Only be called in category axis. | 
|      * Can be overridden, consider other axes like in 3D. | 
|      * @return Auto interval for cateogry axis tick and label | 
|      */ | 
|     calculateCategoryInterval(): ReturnType<typeof calculateCategoryInterval>; | 
| } | 
| export default Axis; |