import Scale from './Scale.js';
import { ScaleTick, Dictionary } from '../util/types.js';
export declare const SPLIT_NUMBER_DEFAULT = 5;
declare class IntervalScale<SETTING extends Dictionary<unknown> = Dictionary<unknown>> extends Scale<SETTING> {
    static type: string;
    type: string;
    protected _interval: number;
    protected _isIntervalCustom: boolean;
    protected _niceExtent: [number, number];
    private _intervalPrecision;
    parse(val: number): number;
    contain(val: number): boolean;
    normalize(val: number): number;
    scale(val: number): number;
    setExtent(start: number | string, end: number | string): void;
    unionExtent(other: [number, number]): void;
    getInterval(): number;
    setInterval(interval: number): void;
    /**
     * @param expandToNicedExtent Whether expand the ticks to niced extent.
     */
    getTicks(expandToNicedExtent?: boolean): ScaleTick[];
    getMinorTicks(splitNumber: number): number[][];
    /**
     * @param opt.precision If 'auto', use nice presision.
     * @param opt.pad returns 1.50 but not 1.5 if precision is 2.
     */
    getLabel(data: ScaleTick, opt?: {
        precision?: 'auto' | number;
        pad?: boolean;
    }): string;
    /**
     * @param splitNumber By default `5`.
     */
    calcNiceTicks(splitNumber?: number, minInterval?: number, maxInterval?: number): void;
    calcNiceExtent(opt: {
        splitNumber: number;
        fixMin?: boolean;
        fixMax?: boolean;
        minInterval?: number;
        maxInterval?: number;
    }): void;
    setNiceExtent(min: number, max: number): void;
}
export default IntervalScale;
