import { ReactNode } from 'react';
/**
 * Individual payload item from chart data
 */
export interface ChartTooltipPayloadItem {
    name?: string;
    value?: number | string;
    color?: string;
    dataKey?: string;
    payload?: Record<string, unknown>;
    [key: string]: unknown;
}
/**
 * ChartTooltip theme configuration
 */
export interface ChartTooltipTheme {
    /** Base tooltip container styles */
    baseStyle?: string;
    /** Content wrapper styles */
    contentStyle?: string;
    /** Multi-series container styles */
    multiSeriesContainerStyle?: string;
    /** Category label styles */
    categoryStyle?: string;
    /** Series items container styles */
    seriesContainerStyle?: string;
    /** Individual series row styles */
    seriesRowStyle?: string;
    /** Color indicator dot styles */
    dotStyle?: string;
    /** Series label text styles */
    labelStyle?: string;
    /** Series value text styles */
    valueStyle?: string;
}
export interface ChartTooltipProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'content'> {
    content?: ReactNode;
    cursor?: boolean | object;
    wrapperStyle?: React.CSSProperties;
    labelStyle?: React.CSSProperties;
    contentStyle?: React.CSSProperties;
    itemStyle?: React.CSSProperties;
    active?: boolean;
    payload?: ChartTooltipPayloadItem[];
    label?: string | number;
    className?: string;
    position?: {
        x: number;
        y: number;
    };
    /** Theme overrides */
    theme?: ChartTooltipTheme;
}
export interface ChartTooltipContentProps {
    active?: boolean;
    payload?: ChartTooltipPayloadItem[];
    label?: string | number;
    labelKey?: string;
    nameKey?: string;
    indicator?: 'dot' | 'line' | 'dashed';
    hideLabel?: boolean;
    hideIndicator?: boolean;
    className?: string;
}
export interface MultiSeriesData {
    category: string | number;
    series: Array<{
        key: string;
        label?: string;
        value: number | string;
        color?: string;
    }>;
    total?: number | string;
}
export interface MultiSeriesChartTooltipProps extends Omit<ChartTooltipProps, 'content'> {
    content?: ReactNode | MultiSeriesData;
    chartType?: 'line' | 'bar' | 'area' | 'scatter';
    containerClassName?: string;
    categoryClassName?: string;
    seriesContainerClassName?: string;
    seriesRowClassName?: string;
    dotClassName?: string;
    labelClassName?: string;
    valueClassName?: string;
}
