import type { XYAxisTypeLinear, XYAxisTypeCategorical, XYAxisTypeTime, XYAxisTypeLog } from './axis.js'; import * as Guards from './guards.js'; export type ScaleTypesMap = { [XYAxisTypeLinear]: { dotScale: Guards.DotScaleLinear; rectScale: Guards.RectScaleLinear; lineScale: Guards.LineScaleLinear; barScale: Guards.BarScaleLinear; areaScale: Guards.AreaScaleLinear; castDataType: number | undefined; tooltip: Guards.TooltipNumerical; hoveringPoint: Guards.NumericalHoveringPoint; }; [XYAxisTypeLog]: { dotScale: Guards.DotScaleLog; rectScale: Guards.RectScaleLog; lineScale: Guards.LineScaleLog; barScale: Guards.BarScaleLog; areaScale: Guards.AreaScaleLog; castDataType: number | undefined; tooltip: Guards.TooltipNumerical; hoveringPoint: Guards.NumericalHoveringPoint; }; [XYAxisTypeTime]: { dotScale: Guards.DotScaleTime; rectScale: Guards.RectScaleTime; lineScale: Guards.LineScaleTime; barScale: Guards.BarScaleTime; areaScale: Guards.AreaScaleTime; castDataType: Date | undefined; tooltip: Guards.TooltipTime; hoveringPoint: Guards.TimeHoveringPoint; }; [XYAxisTypeCategorical]: { dotScale: Guards.DotScaleBand; rectScale: Guards.RectScaleBand; lineScale: Guards.LineScaleBand; barScale: Guards.BarScaleBand; areaScale: Guards.AreaScaleBand; castDataType: string | undefined; tooltip: Guards.TooltipCategorical; hoveringPoint: Guards.CategoricalHoveringPoint; }; }; export type ScaleTypes = keyof ScaleTypesMap;