/** 
 | 
 * Linear continuous scale 
 | 
 * http://en.wikipedia.org/wiki/Level_of_measurement 
 | 
 */ 
 | 
import Scale from './Scale.js'; 
 | 
import OrdinalMeta from '../data/OrdinalMeta.js'; 
 | 
import SeriesData from '../data/SeriesData.js'; 
 | 
import { OrdinalRawValue, OrdinalNumber, DimensionLoose, OrdinalSortInfo, OrdinalScaleTick, ScaleTick } from '../util/types.js'; 
 | 
import { CategoryAxisBaseOption } from '../coord/axisCommonTypes.js'; 
 | 
declare type OrdinalScaleSetting = { 
 | 
    ordinalMeta?: OrdinalMeta | CategoryAxisBaseOption['data']; 
 | 
    extent?: [number, number]; 
 | 
}; 
 | 
declare class OrdinalScale extends Scale<OrdinalScaleSetting> { 
 | 
    static type: string; 
 | 
    readonly type = "ordinal"; 
 | 
    private _ordinalMeta; 
 | 
    /** 
 | 
     * For example: 
 | 
     * Given original ordinal data: 
 | 
     * ```js 
 | 
     * option = { 
 | 
     *     xAxis: { 
 | 
     *         // Their raw ordinal numbers are: 
 | 
     *         //      0    1    2    3    4    5 
 | 
     *         data: ['a', 'b', 'c', 'd', 'e', 'f'] 
 | 
     *     }, 
 | 
     *     yAxis: {} 
 | 
     *     series: { 
 | 
     *         type: 'bar', 
 | 
     *         data: [ 
 | 
     *             ['d', 110], // ordinalNumber: 3 
 | 
     *             ['c', 660], // ordinalNumber: 2 
 | 
     *             ['f', 220], // ordinalNumber: 5 
 | 
     *             ['e', 550]  // ordinalNumber: 4 
 | 
     *         ], 
 | 
     *         realtimeSort: true 
 | 
     *     } 
 | 
     * }; 
 | 
     * ``` 
 | 
     * After realtime sorted (order by yValue desc): 
 | 
     * ```js 
 | 
     * _ordinalNumbersByTick: [ 
 | 
     *     2, // tick: 0, yValue: 660 
 | 
     *     5, // tick: 1, yValue: 220 
 | 
     *     3, // tick: 2, yValue: 110 
 | 
     *     4, // tick: 3, yValue: 550 
 | 
     *     0, // tick: 4, yValue: - 
 | 
     *     1, // tick: 5, yValue: - 
 | 
     * ], 
 | 
     * _ticksByOrdinalNumber: [ 
 | 
     *     4, // ordinalNumber: 0, yValue: - 
 | 
     *     5, // ordinalNumber: 1, yValue: - 
 | 
     *     0, // ordinalNumber: 2, yValue: 660 
 | 
     *     2, // ordinalNumber: 3, yValue: 110 
 | 
     *     3, // ordinalNumber: 4, yValue: 550 
 | 
     *     1, // ordinalNumber: 5, yValue: 220 
 | 
     * ] 
 | 
     * ``` 
 | 
     * The index of this array is from `0` to `ordinalMeta.categories.length`. 
 | 
     * 
 | 
     * @see `Ordinal['getRawOrdinalNumber']` 
 | 
     * @see `OrdinalSortInfo` 
 | 
     */ 
 | 
    private _ordinalNumbersByTick; 
 | 
    /** 
 | 
     * This is the inverted map of `_ordinalNumbersByTick`. 
 | 
     * The index of this array is from `0` to `ordinalMeta.categories.length`. 
 | 
     * 
 | 
     * @see `Ordinal['_ordinalNumbersByTick']` 
 | 
     * @see `Ordinal['_getTickNumber']` 
 | 
     * @see `OrdinalSortInfo` 
 | 
     */ 
 | 
    private _ticksByOrdinalNumber; 
 | 
    constructor(setting?: OrdinalScaleSetting); 
 | 
    parse(val: OrdinalRawValue | OrdinalNumber): OrdinalNumber; 
 | 
    contain(rank: OrdinalRawValue | OrdinalNumber): boolean; 
 | 
    /** 
 | 
     * Normalize given rank or name to linear [0, 1] 
 | 
     * @param val raw ordinal number. 
 | 
     * @return normalized value in [0, 1]. 
 | 
     */ 
 | 
    normalize(val: OrdinalRawValue | OrdinalNumber): number; 
 | 
    /** 
 | 
     * @param val normalized value in [0, 1]. 
 | 
     * @return raw ordinal number. 
 | 
     */ 
 | 
    scale(val: number): OrdinalNumber; 
 | 
    getTicks(): OrdinalScaleTick[]; 
 | 
    getMinorTicks(splitNumber: number): number[][]; 
 | 
    /** 
 | 
     * @see `Ordinal['_ordinalNumbersByTick']` 
 | 
     */ 
 | 
    setSortInfo(info: OrdinalSortInfo): void; 
 | 
    private _getTickNumber; 
 | 
    /** 
 | 
     * @usage 
 | 
     * ```js 
 | 
     * const ordinalNumber = ordinalScale.getRawOrdinalNumber(tickVal); 
 | 
     * 
 | 
     * // case0 
 | 
     * const rawOrdinalValue = axisModel.getCategories()[ordinalNumber]; 
 | 
     * // case1 
 | 
     * const rawOrdinalValue = this._ordinalMeta.categories[ordinalNumber]; 
 | 
     * // case2 
 | 
     * const coord = axis.dataToCoord(ordinalNumber); 
 | 
     * ``` 
 | 
     * 
 | 
     * @param {OrdinalNumber} tickNumber index of display 
 | 
     */ 
 | 
    getRawOrdinalNumber(tickNumber: number): OrdinalNumber; 
 | 
    /** 
 | 
     * Get item on tick 
 | 
     */ 
 | 
    getLabel(tick: ScaleTick): string; 
 | 
    count(): number; 
 | 
    unionExtentFromData(data: SeriesData, dim: DimensionLoose): void; 
 | 
    /** 
 | 
     * @override 
 | 
     * If value is in extent range 
 | 
     */ 
 | 
    isInExtentRange(value: OrdinalNumber): boolean; 
 | 
    getOrdinalMeta(): OrdinalMeta; 
 | 
    calcNiceTicks(): void; 
 | 
    calcNiceExtent(): void; 
 | 
} 
 | 
export default OrdinalScale; 
 |