import { DateTimeFormatter, FormatterWithPrecision, type StringFormatter, type TimeFrameFormatter } from '../../core/types/formatter.js'; import { ScaleTypesMap } from '../types/scale-types-map.js'; import type { AreaSeriesContent, DotSeriesContent, LineSeriesContent, XYChartExploreState } from '../types/state.js'; import { AnyXYChartScale, type AREA_HORIZONTAL, type AREA_VERTICAL, type AreaMetadata, type AreaSeriesWithDatapoints, type BAND_HORIZONTAL, type BAND_VERTICAL, type BarMetadata, type BarSeriesWithDatapoints, type BaseMetadata, DOT_VARIANT, type DotMetadata, DotSeriesWithDatapoints, LINE_VARIANT, type LineMetadata, type LineSeriesWithDatapoints, type MapDatapoints, type RectDatapointInternal, type RectMetadata, RectSeriesWithDatapoints, type XYChartAreaSeriesInternal, type XYChartBarSeriesInternal, XYChartDotSeriesInternal, type XYChartLineSeriesInternal, XYChartRectSeriesInternal, XYChartSeriesWithDatapoints, XYChartVariantsInternal, type XYValueAccessorDataTypes } from '../types/xy-chart-internals.js'; import { type AreaDatapoint, type BarDatapoint, type DotDatapoint, type LineDatapoint, type RectDatapoint, XYAccessorDataTypes } from '../types/xy-chart.js'; interface BaseGuard { v0: XYAccessorDataTypes; } interface HoveringPointGuard extends BaseGuard { scale: AnyXYChartScale; } export declare function isNumericalHoveringPoint(args: HoveringPointGuard): args is ScaleTypesMap['numerical.linear']['hoveringPoint']; export declare function isTimeHoveringPoint(args: HoveringPointGuard): args is ScaleTypesMap['time']['hoveringPoint']; export declare function isCategoricalHoveringPoint(args: HoveringPointGuard): args is ScaleTypesMap['categorical']['hoveringPoint']; interface DotSeriesScaleGuard extends BaseGuard { v1: Date | undefined; scale: AnyXYChartScale; } export declare function isNumericalDotScale(args: DotSeriesScaleGuard): args is ScaleTypesMap['numerical.linear']['dotScale']; export declare function isTimeDotScale(args: DotSeriesScaleGuard): args is ScaleTypesMap['time']['dotScale']; export declare function isCategoricalDotScale(args: DotSeriesScaleGuard): args is ScaleTypesMap['categorical']['dotScale']; interface RectScaleGuard extends BaseGuard { scale: AnyXYChartScale; v1: XYAccessorDataTypes | undefined; } export declare function isNumericalRectScale(args: RectScaleGuard): args is ScaleTypesMap['numerical.linear']['rectScale']; export declare function isTimeRectScale(args: RectScaleGuard): args is ScaleTypesMap['time']['rectScale']; export declare function isCategoricalRectScale(args: RectScaleGuard): args is ScaleTypesMap['categorical']['rectScale']; interface LineSeriesScaleGuard extends BaseGuard { v1: Date | undefined; scale: AnyXYChartScale; } export declare function isNumericalLineScale(args: LineSeriesScaleGuard): args is ScaleTypesMap['numerical.linear']['lineScale']; export declare function isTimeLineScale(args: LineSeriesScaleGuard): args is ScaleTypesMap['time']['lineScale']; export declare function isCategoricalLineScale(args: LineSeriesScaleGuard): args is ScaleTypesMap['categorical']['lineScale']; interface BarSeriesScaleGuard { v0: XYAccessorDataTypes | undefined; v1: XYAccessorDataTypes | undefined; scale: AnyXYChartScale; } export declare function isNumericalBarScale(args: BarSeriesScaleGuard): args is ScaleTypesMap['numerical.linear']['barScale']; export declare function isTimeBarScale(args: BarSeriesScaleGuard): args is ScaleTypesMap['time']['barScale']; export declare function isCategoricalBarScale(args: BarSeriesScaleGuard): args is ScaleTypesMap['categorical']['barScale']; interface AreaSeriesScaleGuard { v0: XYAccessorDataTypes | undefined; v1: XYAccessorDataTypes | undefined; scale: AnyXYChartScale; } export declare function isNumericalAreaScale(args: AreaSeriesScaleGuard): args is ScaleTypesMap['numerical.linear']['areaScale']; export declare function isTimeAreaScale(args: AreaSeriesScaleGuard): args is ScaleTypesMap['time']['areaScale']; export declare function isCategoricalAreaScale(args: AreaSeriesScaleGuard): args is ScaleTypesMap['categorical']['areaScale']; export type TooltipFormatter = FormatterWithPrecision | DateTimeFormatter | TimeFrameFormatter | StringFormatter | undefined; export type TooltipGuard = BaseGuard & ({ formatter: TooltipFormatter; } | { formatter: TooltipFormatter; v1: XYAccessorDataTypes; }); export declare function isNumericalToolTip(args: T1): args is Pick; export declare function isTimeTooltip(args: T1): args is Pick; export type TooltipContextHoveredPoints = { series: HoveredSeries; datapoint: HoveredDatapoint; metadata: HoveredMetadata; }; type RectTooltipContext = { series: RectSeriesWithDatapoints; datapoint: RectDatapoint; metadata: RectMetadata; }; type BarTooltipContext = { series: BarSeriesWithDatapoints; datapoint: BarDatapoint; metadata: BarMetadata; }; export type TooltipContextClosestPoints = { series: ClosestSeries; datapoint: ClosestDatapoint; metadata: ClosestMetadata; }; type AreaTooltipContext = { series: AreaSeriesWithDatapoints; datapoint: AreaDatapoint; metadata: AreaMetadata; }; export declare function isCategoricalTooltip(args: T1): args is Pick; export declare function isRectSeries(series: XYChartVariantsInternal): series is XYChartRectSeriesInternal; export declare function isRectSeries(series: XYChartSeriesWithDatapoints): series is RectSeriesWithDatapoints; export declare function isDotSeries(series: XYChartVariantsInternal): series is XYChartDotSeriesInternal; export declare function isDotSeries(series: XYChartSeriesWithDatapoints): series is DotSeriesWithDatapoints; export declare function isLineSeries(series: XYChartVariantsInternal): series is XYChartLineSeriesInternal; export declare function isLineSeries(series: XYChartSeriesWithDatapoints): series is LineSeriesWithDatapoints; export declare function isBarSeries(series: XYChartVariantsInternal): series is XYChartBarSeriesInternal; export declare function isBarSeries(series: XYChartSeriesWithDatapoints): series is BarSeriesWithDatapoints; export declare function isAreaSeries(series: XYChartVariantsInternal): series is XYChartAreaSeriesInternal; export declare function isAreaSeries(series: XYChartSeriesWithDatapoints): series is AreaSeriesWithDatapoints; export declare function isRectTooltipContext(context: TooltipContextHoveredPoints): context is RectTooltipContext; export declare function isBarTooltipContext(context: TooltipContextHoveredPoints): context is BarTooltipContext; export declare function isAreaTooltipContext(context: TooltipContextClosestPoints): context is AreaTooltipContext; export declare function isDotTooltipContent(content: XYChartExploreState['content']): content is DotSeriesContent; export declare function isLineTooltipContent(content: XYChartExploreState['content']): content is LineSeriesContent; export declare function isAreaTooltipContent(content: XYChartExploreState['content']): content is AreaSeriesContent; export declare function isRectDatapoint(datapoint: RectDatapointInternal | DotDatapoint | LineDatapoint | BarDatapoint): datapoint is RectDatapointInternal; export declare const isStringOrValidNumber: (value: XYValueAccessorDataTypes) => value is string | number; export declare function isValidName(value: XYAccessorDataTypes | boolean | null | undefined): value is XYAccessorDataTypes | boolean; export type HoveredSeries = BarSeriesWithDatapoints | RectSeriesWithDatapoints; export type HoveredDatapoint = T extends BarSeriesWithDatapoints ? BarDatapoint : RectDatapointInternal; export type HoveredMetadata = T extends BarSeriesWithDatapoints ? BaseMetadata & Partial : BaseMetadata & Partial; export type HoveredSeriesToMetadata = Map>; export type ClosestSeries = DotSeriesWithDatapoints | LineSeriesWithDatapoints | AreaSeriesWithDatapoints; export type ClosestDatapoint = T extends DotSeriesWithDatapoints ? DotDatapoint : T extends LineSeriesWithDatapoints ? LineDatapoint : AreaDatapoint; export type ClosestMetadata = T extends DotSeriesWithDatapoints ? BaseMetadata & Partial : T extends LineSeriesWithDatapoints ? BaseMetadata & Partial : BaseMetadata & Partial; export type ClosestSeriesToMetadata = Map>; export type TwoParameterAccessor = { x: (scale: AnyXYChartScale, relAccessor?: (value: number) => number) => (datapoint: T) => number; y: (scale: AnyXYChartScale, relAccessor?: (value: number) => number) => (datapoint: T) => number; }; export type XFourParameterAccessor = { x: (scale: AnyXYChartScale, datapointToMetadata: MapDatapoints, relAccessor?: (value: number) => number, isSeriesStacked?: boolean) => (datapoint: AreaDatapoint) => number; y: (scale: AnyXYChartScale, relAccessor?: (value: number) => number) => (datapoint: AreaDatapoint) => number; }; export type YFourParameterAccessor = { x: (scale: AnyXYChartScale, relAccessor?: (value: number) => number) => (datapoint: AreaDatapoint) => number; y: (scale: AnyXYChartScale, datapointToMetadata: MapDatapoints, relAccessor?: (value: number) => number, isSeriesStacked?: boolean) => (datapoint: AreaDatapoint) => number; }; export type LinearAccessors = { [BAND_HORIZONTAL]: TwoParameterAccessor; [BAND_VERTICAL]: TwoParameterAccessor; [DOT_VARIANT]: TwoParameterAccessor; [LINE_VARIANT]: TwoParameterAccessor; [AREA_HORIZONTAL]: XFourParameterAccessor; [AREA_VERTICAL]: YFourParameterAccessor; }; export declare function isHorizontalAreaAccessors(accessors: LinearAccessors[keyof LinearAccessors]): accessors is XFourParameterAccessor; export declare function isVerticalAreaAccessors(accessors: LinearAccessors[keyof LinearAccessors]): accessors is YFourParameterAccessor; export {};