import { CSSProperties } from 'react';
import { ApproxAxisLabelCount } from './XYChart';
export declare type ColorFormatterByKey = (dataKey: string) => string | undefined | null;
export declare type ColorFormatterByDatum = (value: {
    [key: string]: string | number;
}, key: string) => string | undefined | null;
export declare type ChartData = {
    [key: string]: number | string | any;
};
export declare type MapData = {
    [key: string]: number;
};
export declare type OnPointerUp<T> = {
    datum: T;
    key: string;
    x: string;
};
export interface ChartProps extends LegendProps {
    removeStroke?: boolean;
    formatXAxisLabel?: (value: LabelTypes, fieldId?: string | null) => LabelTypes;
    formatYAxisLabel?: (value: LabelTypes) => LabelTypes;
    horizontal?: boolean;
    height?: number;
    width?: number;
    theme?: ChartTheme;
    onPointerUp?: (value: OnPointerUp<any>) => void;
    approxYAxisLabelCount?: ApproxAxisLabelCount;
    approxXAxisLabelCount?: ApproxAxisLabelCount;
    yDomain?: [number | null | undefined, number | null | undefined];
    popOverMenuStyles?: ChartPopoverMenuTheme;
}
export declare type LabelTypes = any | undefined;
export declare type LegendProps = {
    legend?: boolean;
};
export interface FormatterProps {
    formatSeriesName: (dataKey: string) => string | undefined;
}
export declare type ChartTheme = {
    axisTitles?: ChartAxisTitleTheme;
    labels?: ChartLabelsTheme;
    dataLabels?: ChartLabelsTheme;
    grid?: ChartGridTheme;
    line?: ChartLineTheme;
    axis?: ChartAxisTheme;
    threshold?: ChartThresholdTheme;
    popoverMenus?: ChartPopoverMenuTheme;
    legend?: ChartLegendTheme;
};
export declare type ChartLabelsTheme = {
    color?: CSSProperties['fill'];
    fontWeight?: CSSProperties['fontWeight'];
    fontSize?: CSSProperties['fontSize'];
    fontFamily?: CSSProperties['fontFamily'];
};
export declare type ChartAxisTitleTheme = {
    color?: CSSProperties['fill'];
    fontWeight?: CSSProperties['fontWeight'];
    fontSize?: CSSProperties['fontSize'];
    fontFamily?: CSSProperties['fontFamily'];
};
export declare type ChartGridTheme = {
    stroke: CSSProperties['stroke'];
};
export declare type ChartLineTheme = {
    opacity?: number;
};
export declare type ChartAxisTheme = {
    stroke: CSSProperties['stroke'];
};
export declare type ChartThresholdTheme = {
    stroke: CSSProperties['stroke'];
};
export declare type ChartPopoverMenuTheme = {
    background?: CSSProperties['background'];
    border?: CSSProperties['border'];
    borderRadius?: CSSProperties['borderRadius'];
    boxShadow?: CSSProperties['boxShadow'];
    color?: CSSProperties['color'];
    fontFamily?: CSSProperties['fontFamily'];
    letterSpacing?: CSSProperties['letterSpacing'];
    padding?: CSSProperties['padding'];
};
export declare type ChartLegendTheme = {
    fontSize?: CSSProperties['fontSize'];
};
