| import Scale from '../scale/Scale.js'; | 
| import { AxisBaseModel } from './AxisBaseModel.js'; | 
| import { ScaleDataValue } from '../util/types.js'; | 
| export interface ScaleRawExtentResult { | 
|     readonly min: number; | 
|     readonly max: number; | 
|     readonly minFixed: boolean; | 
|     readonly maxFixed: boolean; | 
|     readonly isBlank: boolean; | 
| } | 
| export declare class ScaleRawExtentInfo { | 
|     private _needCrossZero; | 
|     private _isOrdinal; | 
|     private _axisDataLen; | 
|     private _boundaryGapInner; | 
|     private _modelMinRaw; | 
|     private _modelMaxRaw; | 
|     private _modelMinNum; | 
|     private _modelMaxNum; | 
|     private _dataMin; | 
|     private _dataMax; | 
|     private _determinedMin; | 
|     private _determinedMax; | 
|     readonly frozen: boolean; | 
|     constructor(scale: Scale, model: AxisBaseModel, originalExtent: number[]); | 
|     /** | 
|      * Parameters depending on outside (like model, user callback) | 
|      * are prepared and fixed here. | 
|      */ | 
|     private _prepareParams; | 
|     /** | 
|      * Calculate extent by prepared parameters. | 
|      * This method has no external dependency and can be called duplicatedly, | 
|      * getting the same result. | 
|      * If parameters changed, should call this method to recalcuate. | 
|      */ | 
|     calculate(): ScaleRawExtentResult; | 
|     modifyDataMinMax(minMaxName: 'min' | 'max', val: number): void; | 
|     setDeterminedMinMax(minMaxName: 'min' | 'max', val: number): void; | 
|     freeze(): void; | 
| } | 
| /** | 
|  * Get scale min max and related info only depends on model settings. | 
|  * This method can be called after coordinate system created. | 
|  * For example, in data processing stage. | 
|  * | 
|  * Scale extent info probably be required multiple times during a workflow. | 
|  * For example: | 
|  * (1) `dataZoom` depends it to get the axis extent in "100%" state. | 
|  * (2) `processor/extentCalculator` depends it to make sure whether axis extent is specified. | 
|  * (3) `coordSys.update` use it to finally decide the scale extent. | 
|  * But the callback of `min`/`max` should not be called multiple times. | 
|  * The code below should not be implemented repeatedly either. | 
|  * So we cache the result in the scale instance, which will be recreated at the beginning | 
|  * of the workflow (because `scale` instance will be recreated each round of the workflow). | 
|  */ | 
| export declare function ensureScaleRawExtentInfo(scale: Scale, model: AxisBaseModel, originalExtent: number[]): ScaleRawExtentInfo; | 
| export declare function parseAxisModelMinMax(scale: Scale, minMax: ScaleDataValue): number; |