import { ScaleContinuousNumeric, ScaleTime, ScaleBand } from 'd3-scale'; import { ChartDataTypes, ChartDomain, ScaleType, ScaleRange } from './interfaces'; export interface NumericD3Scale { type: 'numeric'; scale: ScaleContinuousNumeric; } export interface TimeD3Scale { type: 'time'; scale: ScaleTime; } export interface CategoricalD3Scale { type: 'categorical'; scale: ScaleBand; } export declare type D3Scale = NumericD3Scale | TimeD3Scale | CategoricalD3Scale; declare type InternalScale = ScaleContinuousNumeric | ScaleBand | ScaleTime; export declare function createScale(type: ScaleType, domain: ChartDomain, range: ScaleRange): D3Scale; 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(): boolean; } export {}; //# sourceMappingURL=scales.d.ts.map