import { ReactElement, ReactNode } from 'react';
import { CurveType } from 'recharts/types/shape/Curve';
import { ChartHeaderKPI } from '../../types';
import { Chart } from './Chart';
export type Variant = 'area' | 'bar';
export type ChartDataKey<T> = Exclude<keyof T, symbol> | ((key: T) => number | string);
export type DropdownItem = {
    label: string;
    value: string;
};
export type ChartProps<TDatum extends object = any, TTimeRange extends string = string> = {
    variant?: Variant;
    data: TDatum[];
    lineDataKey?: ChartDataKey<TDatum>;
    filterKey?: ChartDataKey<TDatum>;
    tooltip: ReactElement | ((props: Chart.TooltipProps<number | string | (string | number)[], string | number>) => ReactNode);
    loading: boolean;
    timeRangeOpts?: readonly TTimeRange[];
    showTimeWarning?: {
        title: string;
        text: string;
    };
    dropDownOptions?: DropdownItem[];
    dropDownValue?: string;
    onDropDownSelect?: (val: string) => void;
    headerLabel?: string;
    addOn?: ReactNode;
    defTimeRange?: TTimeRange;
    xAxisDataKey?: ChartDataKey<TDatum>;
    displayXAxis?: boolean;
    yAxisDataKey?: ChartDataKey<TDatum>;
    displayYAxis?: boolean;
    displayHeader?: boolean;
    areaDataKey?: string;
    chartHeight?: number;
    chartKPIs?: ChartHeaderKPI<TDatum>[];
    selectedKPI?: ChartHeaderKPI<TDatum> | null;
    yAxisDomain?: Chart.AxisDomain;
    sortFn?: (a: TDatum, b: TDatum, field: ChartDataKey<TDatum>) => number;
    handleChartKPISelected?: (kpi: ChartHeaderKPI<TDatum>) => void;
    formatAxisX?: (val: any) => ReactNode;
    formatAxisY?: (val: any) => ReactNode;
    curveType?: CurveType;
    xAxisReversed?: boolean;
    yAxisReversed?: boolean;
    showGradient?: boolean;
    onTimeRangeChange?: (val: TTimeRange) => void;
    renderTimeRange?: (val: TTimeRange) => ReactNode;
    average?: number;
    yAxisLabel?: string;
    children?: ReactNode;
    className?: string;
};
//# sourceMappingURL=common.d.ts.map