import type { ReactNode } from 'react'; import type { Interpolation, InterpolatorFn } from '@react-spring/web'; import type { Color, DataSeries, Shape, LabelFormatter, LineStyle, TrendIndicator } from '@shopify/polaris-viz-core'; import type { Series, SeriesPoint } from 'd3-shape'; import type { ScaleLinear } from 'd3-scale'; import type { TrendIndicatorProps } from 'components/TrendIndicator'; export interface YAxisTick { value: number; formattedValue: string; yOffset: number; } export interface SparkChartData { value: number | null; } export declare type PathInterpolator = InterpolatorFn; export declare type NumberInterpolator = InterpolatorFn; export declare enum BarMargin { Small = 0.05, Medium = 0.1, Large = 0.3, None = 0 } export interface Margin { Top: number; Left: number; Right: number; Bottom: number; } export declare type StackedSeries = Series<{ [key: string]: number; }, string>; export declare type FormattedStackedSeries = SeriesPoint<{ [key: string]: number; }>[]; export interface SingleIndexGap { index: number; gap: number; } export interface StackedBarGapDirections { positive: SingleIndexGap[]; negative: SingleIndexGap[]; } export declare type GradientUnits = 'userSpaceOnUse' | 'objectBoundingBox'; export declare type AnimatedCoordinate = Interpolation; export interface RenderTooltipDataPoint { color?: Color; isComparison?: boolean; key: number | string; value: number | string | null; isHidden?: boolean; trend?: TrendIndicator; } export interface TooltipFormatters { valueFormatter?: LabelFormatter; keyFormatter?: LabelFormatter; titleFormatter?: LabelFormatter; } export interface RenderTooltipContentData { data: { shape: Shape; data: RenderTooltipDataPoint[]; name?: string; }[]; activeIndex: number; dataSeries: DataSeries[]; theme: string; title?: string; formatters?: TooltipFormatters; } export interface RenderAnnotationContentData { annotation: Annotation; } export interface TooltipData { shape: Shape; data: { key: string; value: string; color?: Color; isComparison?: boolean; isHidden?: boolean; trend?: TrendIndicatorProps; }[]; name?: string; } export interface TooltipOptions extends TooltipFormatters { renderTooltipContent?: (data: RenderTooltipContentData) => React.ReactNode; } export interface PreparedLabels { fontSize: number; text: string; words: { word: string; wordWidth: number; }[]; truncatedWords: string[]; truncatedName: string; truncatedWidth: number; } export interface FormattedLine { height: number; truncatedText: string; fontSize: number; fullText: string; textAnchor: string; width: number; x: number; y: number; dominantBaseline?: string; transform?: string; } export interface LegendData { name: string; color: Color; isComparison?: boolean; isHidden?: boolean; shape?: Shape; value?: string; trend?: MetaDataTrendIndicator; lineStyle?: LineStyle; metadata?: { legendLabel?: string; lineStyle?: LineStyle; }; styleOverride?: { tooltip?: { shape?: Shape; }; }; } export interface Annotation { axis: 'x' | 'y'; label: string; startKey: string | number; endKey?: string | number; collapseButtonText?: string; expandButtonText?: string; content?: { content: ReactNode; linkText?: string; linkUrl?: string; title?: ReactNode; }; } export interface ComboAnnotation extends Omit { axis: 'x' | 'y1' | 'y2'; } export interface AnnotationLookupTable { [key: number]: Annotation; } export declare type GetXPosition = ({ isCrosshair, index, }: { isCrosshair: boolean; index?: number | null; }) => number | Interpolation; export interface FormattedTicks { value: number; formattedValue: string; yOffset: number; } export declare type LegendPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'top' | 'right' | 'bottom' | 'left' | 'center'; export declare type BottomOnlyLegendPosition = 'left' | 'right' | 'center'; export declare type MetaDataTrendIndicator = Omit; export interface ColorVisionInteractionMethods { getColorVisionEventAttrs: (index: number) => React.HTMLAttributes; getColorVisionStyles: (index: number) => React.CSSProperties; } export declare type RenderLegendContent = (colorVisionInteractionMethods: ColorVisionInteractionMethods, activeIndex?: number) => ReactNode; export declare type RenderHiddenLegendLabel = (hiddenItemsCount: number) => ReactNode; export declare type SortedBarChartData = (number | null)[][]; export interface InnerValueContents { activeValue: number | null | undefined; activeIndex: number; animatedTotalValue: ReactNode; totalValue: number; dimensions: { width: number; height: number; }; } export declare type RenderInnerValueContent = (values: InnerValueContents) => ReactNode; export interface ColorVisionEventReturn extends CustomEvent { detail: { index: number; }; } export interface ExternalEventReturn extends CustomEvent { detail: { indexes: number[]; }; } export interface LineChartSlotProps { drawableHeight: number; drawableWidth: number; xScale: ScaleLinear; yScale: ScaleLinear; theme: string; } //# sourceMappingURL=types.d.ts.map