import React from 'react'; import { XDomain, YDomain } from '../../internal/components/cartesian-chart/interfaces'; import { ChartScale, NumericChartScale } from '../../internal/components/cartesian-chart/scales'; import { ChartPlotRef } from '../../internal/components/chart-plot'; import { ChartSeriesMarkerType } from '../../internal/components/chart-series-marker'; import { ReadonlyAsyncStore } from '../async-store'; import { AreaChartProps } from '../interfaces'; export interface ChartModel { height: number; width: number; series: readonly AreaChartProps.Series[]; allSeries: readonly AreaChartProps.Series[]; getInternalSeries(series: AreaChartProps.Series): ChartModel.InternalSeries; computed: ChartModel.ComputedProps; handlers: { onSVGMouseMove: (event: React.MouseEvent) => void; onSVGMouseOut: (event: React.MouseEvent) => void; onSVGMouseDown: (event: React.MouseEvent) => void; onSVGKeyDown: (event: React.KeyboardEvent) => void; onApplicationFocus: (event: React.FocusEvent, trigger: 'mouse' | 'keyboard') => void; onApplicationBlur: (event: React.FocusEvent) => void; onFilterSeries: (series: readonly AreaChartProps.Series[]) => void; onLegendHighlight: (series: null | AreaChartProps.Series) => void; onPopoverDismiss: (outsideClick?: boolean) => void; onContainerBlur: () => void; onDocumentKeyDown: (event: KeyboardEvent) => void; onPopoverLeave: (event: React.MouseEvent) => void; }; interactions: ReadonlyAsyncStore>; refs: { plot: React.RefObject; plotMeasure: React.Ref; container: React.RefObject; verticalMarker: React.RefObject; popoverRef: React.RefObject; }; } export declare namespace ChartModel { interface ComputedProps { xDomain: XDomain; yDomain: YDomain; xScale: ChartScale; yScale: NumericChartScale; xTicks: AreaChartProps.DataTypes[]; yTicks: number[]; plot: { xy: readonly PlotPoint[][]; xs: readonly PlotPoint[][]; sx: readonly PlotPoint[][]; }; } interface InteractionsState { highlightedX: null | readonly PlotPoint[]; highlightedPoint: null | PlotPoint; highlightedSeries: null | AreaChartProps.Series; legendSeries: null | AreaChartProps.Series; isPopoverPinned: boolean; } interface InternalSeries { series: AreaChartProps.Series; title: string; color: string; markerType: ChartSeriesMarkerType; formatValue: (y: number, x: T) => string | number; } interface PlotPoint { x: T; y0: number; y1: number; scaled: { x: number; y0: number; y1: number; }; index: { x: number; y: number; s: number; }; value: number; } }