///
import { Color } from 'csstype';
import { TickProps } from './Tick';
declare const CHART_COLOR_SCHEMES: {
blue: string[];
orange: string[];
pink: string[];
gray: string[];
default: string[];
};
export type ChartColorScheme = keyof typeof CHART_COLOR_SCHEMES | Color[];
export type ValueRange = {
init: number;
end: number;
step?: number;
};
export type UnitOfTime = 'year' | 'month' | 'week' | 'day' | 'hour' | 'minute' | 'second' | 'millisecond';
export type DateRangeStep = {
amount: number;
unit: UnitOfTime;
};
export type DateRange = {
init: Date;
end: Date;
format?: (date: Date) => string;
step?: DateRangeStep;
};
export type SeriesDataPoint = number | Date | DataPoint | DataPoint;
export type ReferenceAreaDataPoint = number | DataPoint;
export type AxisDomain = string[] | ValueRange | DateRange;
export type TooltipType = 'point' | 'line' | 'none';
export type DotShape = 'circle' | 'square' | 'rect' | 'triangle' | 'diamond' | 'cross' | 'star' | 'happy';
export type OutliersType = 'auto' | 'expand-domain';
export type TooltipRenderer = (points?: (DataPoint & {
seriesName: string;
})[]) => string | React.ReactNode;
export declare enum SeriesType {
Line = 0,
Column = 1,
Area = 2
}
export interface DataPoint {
x: XDomain;
y: YDomain;
}
export type ChartSeriesDataPoint = number | DataPoint;
export interface ChartSeries {
type?: SeriesType;
name: string;
data: ChartSeriesDataPoint[] | boolean[];
color?: string;
dashed?: boolean;
dot?: false | DotShape;
dataKey?: string;
}
export interface BarChartSeries {
name: string;
data: number[] | DataPoint[];
color?: string;
}
export interface PieChartDataPoint {
name: string;
value: number;
color?: string;
}
interface RangeAreaMask {
show?: boolean;
hideDots?: {
from: XDomain;
to: XDomain;
};
fillOpacity?: number;
yAtEnd?: any;
overlayDots?: boolean;
}
export interface RangeArea {
name: string;
tooltip?: string;
init: XDomain;
end: XDomain;
strokeColor?: string | false;
fillColor?: string | false;
fillOpacity?: number;
tickColor?: string | false;
mask?: RangeAreaMask;
}
export interface ReferenceAreaRange {
x: XDomain;
upperLimit?: number | 'yEnd' | 'yInit';
}
export interface ReferenceAreaPercent {
x: XDomain;
percent: number;
}
interface ReferenceAreaLabel {
name: string;
description?: string;
color?: string;
alignment?: 'central' | 'text-before-edge';
}
interface ReferenceAreaTick {
color?: string;
kind?: 'horizontal' | 'vertical';
}
interface ReferenceAreaStroke {
show?: boolean;
color?: string;
kind?: 'line' | 'dashed';
}
export interface ReferenceArea {
label: ReferenceAreaLabel;
area: ReferenceAreaRange[];
color?: string;
tick?: ReferenceAreaTick;
stroke?: ReferenceAreaStroke;
}
export interface ReferenceAreaWithPercents extends ReferenceArea {
areaPercents: ReferenceAreaPercent[];
}
export interface AxisOptions {
title?: string;
unit?: string;
domain?: AxisDomain;
tickRenderer?: (tick: TickProps, domainMaxValue: number | Date, isAxisX: boolean, isOutlierIndicator?: boolean) => React.SVGProps;
}
export interface RangeSelectorOptions {
label?: string;
options: {
[x: string]: Partial;
};
defaultOption?: string;
}
export interface CustomDotProps {
cx?: number;
cy?: number;
stroke?: string;
shape?: DotShape;
}
export interface TooltipOptions {
type: TooltipType;
render?: TooltipRenderer;
}
export interface DataPointWithOutlier {
data: ChartSeriesDataPoint;
isOutlier: boolean;
}
export declare function isValueRange(x: AxisDomain): x is ValueRange;
export declare function isDateRange(x: AxisDomain): x is DateRange;
export declare function getChartColorScheme(colorScheme: ChartColorScheme): Color[];
export {};