import { ScaleBand, ScaleContinuousNumeric, ScaleTime } from '../../vendor/d3-scale'; import { ChartDataTypes, ChartDomain, ScaleRange, ScaleType } from './interfaces'; interface NumericD3Scale { type: 'numeric'; scale: ScaleContinuousNumeric; } interface TimeD3Scale { type: 'time'; scale: ScaleTime; } interface CategoricalD3Scale { type: 'categorical'; scale: ScaleBand; } type D3Scale = NumericD3Scale | TimeD3Scale | CategoricalD3Scale; type InternalScale = ScaleContinuousNumeric | ScaleBand | ScaleTime; export declare class ChartScale { readonly scaleType: ScaleType; readonly domain: ChartDomain; readonly range: ScaleRange; readonly scale: D3Scale; readonly d3Scale: InternalScale; constructor(scaleType: ScaleType, domain: ChartDomain, range: ScaleRange, noCategoricalOuterPadding?: boolean); cloneScale(newScaleType?: ScaleType, newDomain?: ChartDomain, newRange?: ScaleRange): ChartScale; isNumeric(): this is { d3Scale: ScaleContinuousNumeric; domain: ChartDomain; }; isTime(): this is { d3Scale: ScaleTime; domain: ChartDomain; }; isCategorical(): this is { d3Scale: ScaleBand; domain: ChartDomain; }; } export declare class NumericChartScale { readonly scaleType: 'linear' | 'log'; readonly scale: NumericD3Scale; readonly d3Scale: ScaleContinuousNumeric; constructor(scaleType: 'linear' | 'log', domain: ChartDomain, range: ScaleRange, adjustDomain: null | number); isCategorical(): this is never; } export {};