import { ScaleBand, ScaleLinear } from 'd3-scale' export type ScaleLinearType = ScaleLinear; export type ScaleBandType = ScaleBand; export interface YAxisData { key: string; // string value for ChartLabel and useGraphData values: Array; // including this code only for review -- // do we prefer the idea of passing label formatting from the data or in the component? // generic function type, specific usage of value varies // eslint-disable-next-line no-unused-vars formatLabel?: (value: number) => string; } export type XValue = string | number export interface GraphData { xValues: Array; yValues: Array; } export interface YAxisProps { maxLeftYAxisValue?: number; maxRightYAxisValue?: number; selectedLeftYAxisLabel?: string; selectedRightYAxisLabel?: string; // generic function type, specific usage of value varies // eslint-disable-next-line no-unused-vars formatRightYAxisLabel?: (value: string) => string; // generic function type, specific usage of value varies // eslint-disable-next-line no-unused-vars formatLeftYAxisLabel?: (value: string) => string; } export interface GraphProps { data: GraphData; height?: number; spacingInner?: number; spacingOuter?: number; contentInset?: { top: number; bottom: number }; min?: number; numberOfTicks?: number; barColors?: Array; useCommonScale?: boolean; yAxisProps?: YAxisProps; }