import React from "react";
/**
 * A single data series to plot on the radar chart
 */
export interface RadarChartSeries {
    /** Series label displayed in the legend */
    label: string;
    /** Data values for each axis -- must match the length of the axes array */
    data: number[];
    /** Color as a hex string (e.g. "#a78bfa") */
    color: string;
}
/**
 * Theme overrides for the RadarChart component
 */
export interface RadarChartThemeOverrides {
    /** Base container style */
    baseStyle?: string;
    /** Grid line stroke color (hex for SVG compatibility) */
    gridColor?: string;
    /** Axis spoke stroke color (hex for SVG compatibility) */
    axisColor?: string;
    /** Axis label CSS classes */
    labelStyle?: string;
    /** Legend container CSS classes */
    legendStyle?: string;
    /** Legend item CSS classes */
    legendItemStyle?: string;
    /** Legend dot CSS classes */
    legendDotStyle?: string;
    /** Legend label CSS classes */
    legendLabelStyle?: string;
}
/**
 * Full theme configuration (all fields required)
 */
export interface RadarChartTheme extends Required<RadarChartThemeOverrides> {
}
/**
 * RadarChart component props
 */
export interface RadarChartProps extends React.HTMLAttributes<HTMLDivElement> {
    /**
     * Array of axis/category labels displayed at each spoke endpoint
     */
    axes: string[];
    /**
     * Array of data series to plot as filled polygons
     */
    series: RadarChartSeries[];
    /**
     * SVG size in pixels (width and height of the SVG viewBox)
     * @default 400
     */
    size?: number;
    /**
     * Number of concentric grid rings drawn from center to outer edge
     * @default 5
     */
    gridLevels?: number;
    /**
     * Maximum data value used for scaling.
     * When omitted, auto-detected from the largest value across all series.
     * @default undefined (auto)
     */
    maxValue?: number;
    /**
     * Whether to render the concentric grid polygons
     * @default true
     */
    showGrid?: boolean;
    /**
     * Whether to render axis labels at each spoke endpoint
     * @default true
     */
    showLabels?: boolean;
    /**
     * Whether to render the legend below the chart
     * @default true
     */
    showLegend?: boolean;
    /**
     * Whether to animate on mount using Framer Motion
     * @default true
     */
    showAnimation?: boolean;
    /**
     * Fill opacity for the data polygons (0 to 1)
     * @default 0.25
     */
    fillOpacity?: number;
    /**
     * Stroke width for the data polygon outlines
     * @default 2
     */
    strokeWidth?: number;
    /**
     * Additional CSS classes applied to the wrapper div
     */
    className?: string;
    /**
     * Whether to show a tooltip on hover over data points
     * @default true
     */
    showTooltip?: boolean;
    /**
     * Theme overrides for customizing the chart appearance
     */
    theme?: RadarChartThemeOverrides;
}
