import { FunctionComponent, AriaAttributes } from 'react'; import { Box, Dimensions, MotionProps, PropertyAccessor, StackOrder, StackOffset, AreaCurve, SvgDefsAndFill, ValueFormat } from '@nivo/core'; import { PartialTheme } from '@nivo/theming'; import { AxisProps, GridValues } from '@nivo/axes'; import { InheritedColorConfig, OrdinalColorScaleConfig } from '@nivo/colors'; import { LegendProps } from '@nivo/legends'; import { ScaleLinear, ScalePoint } from '@nivo/scales'; export type StreamLayerId = 'grid' | 'axes' | 'layers' | 'dots' | 'slices' | 'legends'; export interface StreamCustomLayerProps { xScale: ScalePoint; yScale: ScaleLinear; layers: StreamLayerData[]; slices: StreamSliceData[]; } export type StreamCustomLayer = FunctionComponent; export type StreamLayer = StreamLayerId | StreamCustomLayer; export type StreamDatum = Record; export type StackFunc = (data: RawDatum[]) => { 0: number; 1: number; data: RawDatum; }[][]; export interface StreamLayerData { id: string | number; label: string | number; color: string; fill?: string; path: string; data: StreamLayerDatum[]; } export interface StreamLayerDatum { layerId: StreamLayerData['id']; layerLabel: StreamLayerData['label']; index: number; value: number; formattedValue: number | string; color: string; x: number; y1: number; y2: number; } export interface TooltipProps { layer: StreamLayerData; } export type Tooltip = FunctionComponent; export interface StackTooltipProps { slice: StreamSliceData; } export type StackTooltip = FunctionComponent; export type DotComponent = FunctionComponent<{ datum: StreamLayerDatum; x: number; y: number; size: number; color: string; borderWidth: number; borderColor: string; }>; export interface StreamSliceData { index: number; x: number; stack: StreamLayerDatum[]; } export interface StreamDataProps { data: RawDatum[]; keys: Exclude[]; } export type StreamCommonProps = { label: PropertyAccessor, string | number>; valueFormat: ValueFormat; stack: StackFunc; order: StackOrder; offsetType: StackOffset; curve: AreaCurve; layers: StreamLayer[]; margin: Box; axisTop: AxisProps | null; axisRight: AxisProps | null; axisBottom: AxisProps | null; axisLeft: AxisProps | null; enableGridX: boolean; gridXValues: GridValues; enableGridY: boolean; gridYValues: GridValues; theme: PartialTheme; colors: OrdinalColorScaleConfig>; fillOpacity: number; borderWidth: number; borderColor: InheritedColorConfig; enableDots: boolean; dotComponent: DotComponent; dotPosition: 'start' | 'center' | 'end'; dotSize: ((datum: StreamLayerDatum) => number) | number; dotColor: InheritedColorConfig; dotBorderWidth: ((datum: StreamLayerDatum) => number) | number; dotBorderColor: InheritedColorConfig; isInteractive: boolean; tooltip: Tooltip; enableStackTooltip: boolean; stackTooltip: StackTooltip; legends: LegendProps[]; renderWrapper: boolean; role: string; ariaLabel: AriaAttributes['aria-label']; ariaLabelledBy: AriaAttributes['aria-labelledby']; ariaDescribedBy: AriaAttributes['aria-describedby']; }; export type StreamSvgProps = Partial> & StreamDataProps & SvgDefsAndFill & Dimensions & MotionProps; //# sourceMappingURL=types.d.ts.map