import React from 'react';
export type TooltipHeadlineProps = {
    text: string;
    subText?: string;
};
export type FooterSummaryProps = {
    summary: string;
};
type ConfigWithlabel = {
    config: {
        name: string;
        label: string;
    }[];
};
type ConfigWithoutlabel = {
    config: {
        name: string;
        label?: string;
    }[];
};
/** TODO: Update swatchLineColor prop from string to more specific type of predefined colors */
type HasSwatchLineData = {
    data: {
        swatchLineColor: string;
        [key: string]: React.ReactNode;
    }[];
};
type DefaultTooltip = {
    type: 'default';
    hasColumnHeader?: boolean;
    data: {
        [key: string]: React.ReactNode;
    }[];
} & ConfigWithoutlabel;
type TableWithSwatchLine = {
    hasColumnHeader: boolean;
    type: 'table';
} & ConfigWithlabel & HasSwatchLineData;
type TableWithoutSwatchLine = {
    hasColumnHeader?: boolean;
    type: 'table';
    data: {
        [key: string]: React.ReactNode;
    }[];
} & ConfigWithoutlabel;
type SwatchLineTooltip = {
    hasColumnHeader?: boolean;
    type: 'swatchLine';
} & HasSwatchLineData & ConfigWithoutlabel;
type HasSwatchLine = SwatchLineTooltip | TableWithSwatchLine;
type HasNoSwatchLine = DefaultTooltip | TableWithoutSwatchLine;
export type TooltipContentProps = (HasNoSwatchLine | HasSwatchLine) & {
    rowTotalData?: {
        [name: string]: React.ReactNode;
    };
};
export type ChartTooltipProps = {
    header: TooltipHeadlineProps;
    tooltipContent: TooltipContentProps;
    footer?: string;
    events?: EventsProps;
};
export type Event = {
    eventHeader: string;
    eventDate: string;
    eventDescription?: string;
    color: string;
};
export type EventsProps = {
    eventTooltipHeader: string;
    callout: () => void;
    events: Event[];
};
export {};
