/// import React from 'react'; import * as d3 from 'd3'; import { FormatValue } from "../_private/types"; import { GridConfig } from "./components/Axis/index"; import { Threshold } from "./components/Threshold/index"; import { ZoomState } from "./components/Zoom/index"; export declare type Item = { x: number | null; y: number | null; }; export declare type NotEmptyItem = { x: number; y: number; }; export declare const itemIsNotEmpty: (item: Item) => item is NotEmptyItem; declare type ThresholdLine = { name?: string; values: readonly NotEmptyItem[]; }; export declare type Threshold = { max: ThresholdLine; min?: ThresholdLine; }; export declare type Boundary = { color: string; value: readonly [number, number]; }; export declare type Line = { values: readonly Item[]; dots?: boolean; withGradient?: boolean; withBoundaries?: boolean; lineName: string; color: string; }; export declare type NumberRange = readonly [number, number]; export declare type TickValues = readonly number[]; export declare type ScaleLinear = d3.ScaleLinear; export declare const directionsX: readonly ["toRight", "toLeft"]; export declare type DirectionX = typeof directionsX[number]; export declare const directionsY: readonly ["toTop", "toBottom"]; export declare type DirectionY = typeof directionsY[number]; export declare const axes: readonly ["x", "y"]; export declare type Axis = typeof axes[number]; declare type Props = { directionX?: DirectionX; directionY?: DirectionY; lines: readonly Line[]; gridConfig: GridConfig; threshold?: Threshold; withZoom?: boolean; isHorizontal: boolean; formatValueForLabel?: FormatValue; formatValueForTooltip?: FormatValue; formatValueForTooltipTitle?: FormatValue; unit?: string; title?: React.ReactNode; onClickHoverLine?: (value: number) => void; background?: string; } & ({ boundaries?: never; } | { boundaries: readonly Boundary[]; boundariesAxis: Axis; showBoundariesOnAxis: boolean; }); export declare type HoveredMainValue = number | undefined; declare type State = { xDomain: NumberRange; yDomain: NumberRange; width: number; height: number; paddingX: number; paddingY: number; zoom: ZoomState; xGuideValue: number; yGuideValue: number; hoveredMainValue: HoveredMainValue; }; export declare const TRANSITION_DURATIONS: { ZOOM: number; SIZE: number; }; export declare const domainPaddings: { horizontal: { top: number; right: number; bottom: number; left: number; }; vertical: { top: number; bottom: number; right: number; left: number; }; }; export declare class LinearChart extends React.Component { ref: React.RefObject; svgWrapperRef: React.RefObject; resizeObserver: ResizeObserver; paddingTransitionEl: Element; secondaryDomainTransitionEl: Element; uid: string; lineClipId: string; dotsClipId: string; boundariesGradientId: string; state: State; targetSecondaryDomain: NumberRange; targetPaddings: { paddingX: number; paddingY: number; }; componentDidMount(): void; componentDidUpdate(prevProps: Props): void; componentWillUnmount(): void; render(): JSX.Element; isXInverted: () => boolean; isYInverted: () => boolean; getXDomain: (items: readonly Item[]) => NumberRange; getYDomain: (items: readonly Item[]) => NumberRange; getThresholdLines: () => (readonly NotEmptyItem[])[]; getAllThresholdValues: () => readonly Item[]; getLines: () => readonly Line[]; getThreshold: () => Threshold | undefined; getAllValues: () => readonly Item[]; getSvgSize: () => { svgWidth: number; svgHeight: number; }; getTicks: () => { mainGridTickValues: TickValues; mainLabelTickValues: readonly number[]; secondaryGridTickValues: number[]; secondaryLabelTickValues: readonly number[]; }; updateDomains(): void; updateSize: () => void; onAxisSizeChange: ({ xAxisHeight, yAxisWidth }: { xAxisHeight: number; yAxisWidth: number; }) => void; getAxis: () => { main: { currentDomain: NumberRange; getDomain: (items: readonly Item[]) => NumberRange; setDomain: (domain: NumberRange) => void; getValue: (v: NotEmptyItem) => number; }; secondary: { currentDomain: NumberRange; getDomain: (items: readonly Item[]) => NumberRange; setDomain: (domain: NumberRange) => void; isInverted: boolean; }; }; onZoom: (newZoom: ZoomState) => void; setHoveredMainValue: (newValue: HoveredMainValue) => void; } export {};