import { ConditionalFormattingOption } from '../Legend/Legend';
import { ChartData, ChartProps, ColorFormatterByDatum, ColorFormatterByKey, FormatterProps } from '../types';
import { LINE_CURVE_MAPPING } from './logic';
import { GenerateAnnotationType } from './logic/annotations';
import { EventHandlerParams } from '@visx/xychart';
import { Component } from '../../../shared-logic/src/Component/types';
export declare type ApproxAxisLabelCount = 'auto' | number;
export declare type ChartIdPrefix = 'dashboard' | 'library' | 'editor';
export declare type AxisType = 'auto' | 'end2end' | 'none';
export declare type BarStyleOverrides = {
    cornerRadius?: number;
};
export interface Props extends ChartProps, FormatterProps {
    uniqueId: string;
    x: string;
    z?: string;
    isBubble?: boolean;
    sharedTooltip?: boolean;
    yAxisOrientation?: 'left' | 'right';
    sparkline?: boolean;
    lineCurve?: Exclude<keyof typeof LINE_CURVE_MAPPING, 'monotoneX' | 'monotoneY'>;
    formatSeriesName: (dataKey: string) => string | undefined;
    lines?: {
        data: Array<ChartData>;
        keys: Array<string>;
        colors: Array<string>;
        annotate: Array<GenerateAnnotationType>;
        scatter?: boolean;
        formatter?: ColorFormatterByKey | ColorFormatterByDatum;
        threshold?: Array<ThresholdType>;
        style?: 'dotted';
        datumFormatter?: ColorFormatterByDatum;
    };
    trends?: {
        data: Array<ChartData>;
        keys: string[];
        colors?: string[];
        opacity?: number[];
        strokeWidth?: number[];
        strokeDasharray?: string | number[];
    };
    bars?: {
        funnelChart?: boolean;
        data: Array<ChartData>;
        keys: Array<string>;
        colors: Array<string>;
        stacked: boolean | '100%';
        annotate: Array<GenerateAnnotationType>;
        formatter?: ColorFormatterByDatum;
        styles?: BarStyleOverrides;
    };
    areas?: {
        data: Array<ChartData>;
        keys: Array<string>;
        stacked: boolean;
        colors: Array<string>;
        annotate: Array<GenerateAnnotationType>;
        formatter?: ColorFormatterByKey;
        threshold?: Array<ThresholdType>;
    };
    forceXAxisAsTime?: boolean;
    showTotalOnTooltip?: boolean;
    onClick: (value?: Datum, nearestDatums?: DatumByKey, event?: OnClickEvent) => void;
    enableHover?: boolean;
    conditionalFormattingPossibilities?: (dataKey: string) => Array<ConditionalFormattingOption>;
    goalLine?: Array<GoalLine>;
    axisTitles?: AxisTitles;
    idPrefix: ChartIdPrefix;
    labels?: boolean;
    quadrants?: Component.Quadrant.Rule;
}
export declare type AxisTitles = {
    x?: string;
    y?: string;
};
export declare type GoalLine = {
    color: string;
    strokeStyle?: 'dashed' | 'solid';
    strokeWidth?: number;
    value: number;
};
export declare type ScaleConfig = {
    paddingOuter?: number;
    paddingInner?: number;
    type: 'time' | 'band' | 'linear' | 'pow';
    nice?: boolean;
    domain?: number[];
    zero?: boolean;
};
export declare type Datum = {
    [key: string]: any;
};
export declare type DatumByKey = Record<Datum['key'], Datum>;
export declare type ThresholdDirecton = '>=' | '<=';
export declare type ThresholdType = {
    key: string;
    value: number;
    color: string;
    direction: ThresholdDirecton;
};
export declare type OnClickEvent = EventHandlerParams<object>;
