import type { ScaleLinear, ScaleLogarithmic, ScaleSymLog } from 'd3-scale'; import type { ChartUnit } from '../../core/types/chart-unit.js'; import type { ColorToken } from '../../core/types/color-palette.js'; /** * @public */ export type HistogramZoomDomain = number[]; /** * @public */ export interface HistogramBin { /** * The start of the bin or bucket */ from: number; /** * The end of the bin or bucket */ to: number; /** * The value, better known as "frequency" */ value: number; } /** * @public */ export interface HistogramSeries { /** * The histogram series data to be graphed by the component */ bins: HistogramBin[]; /** * The name for the histogram series */ name: string; /** * Unit token for the values in the y-axis of the histogram series */ unit?: ChartUnit; /** * The color to be applied to the series */ color?: string; } /** * @internal */ export interface SeriesMetadata { id: string; color: ColorToken; scaleIndex: number; } /** * @internal */ export interface TooltipValueMetadata { value: number; unit: ChartUnit; } /** * @internal */ export interface BinMetadata extends HistogramBin { seriesId: string; color: ColorToken; unit: ChartUnit; seriesName: string; cumulativeValue?: number; absolute?: TooltipValueMetadata; } /** * @internal */ export type WeakMapSeries = WeakMap; /** * @internal */ export type WeakMapBins = WeakMap; /** * @internal */ export interface HistogramDataPoint { /** * The value in X axis */ x: number; /** * The value in Y axis */ y: number; } /** * @internal */ export interface ContinuousSeries { /** * The continuous series data to be graphed by the component */ dataPoints: HistogramDataPoint[]; /** * The name or names in case of multiple dimensions for the continuous series */ name: string; /** * Unit token for the values in the y-axis of the histogram chart */ unit?: ChartUnit; } /** * @public */ export declare const histogramTooltipVariantOptions: readonly ["single", "shared", "grouped"]; /** * @public */ export type HistogramTooltipVariant = (typeof histogramTooltipVariantOptions)[number]; /** * @internal */ export type AxesUnits = [ChartUnit, ChartUnit]; /** * @internal */ export type XScale = ScaleLinear | ScaleLogarithmic | ScaleSymLog; /** * @internal */ export type YScale = ScaleLinear | ScaleLogarithmic | ScaleSymLog; /** * API config for a chart zoom interaction * @internal */ export interface ChartZoomConfig { /** Enables a specific zoom interaction on the chart. */ enabled?: boolean; }