import { type VariantProps } from 'class-variance-authority';
import * as React from 'react';
declare const DEFAULT_CHART_COLORS: string[];
declare const lineChartVariants: (props?: ({
    size?: "default" | "sm" | "lg" | "xl" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export interface ChartDataPoint {
    /** Unique identifier for this data point */
    id: string;
    /** Display label (X-axis label, category name) */
    label: string;
    /** Values keyed by series id - e.g., { revenue: 5000, expenses: 3000 } */
    values: Record<string, number>;
}
export interface ChartSeries {
    /** Unique identifier referenced by data points */
    id: string;
    /** Display label for legends and tooltips */
    label: string;
    /** Optional custom color (CSS color value) */
    color?: string;
}
export type LegendPosition = 'none' | 'top' | 'right';
export interface LineChartProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof lineChartVariants> {
    /** Data points for the chart */
    data: ChartDataPoint[];
    /** Series configuration */
    series: ChartSeries[];
    /** Show Y-axis labels and grid lines */
    showYAxis?: boolean;
    /** Show X-axis labels */
    showXAxis?: boolean;
    /** Y-axis label (title) */
    yAxisLabel?: string;
    /** X-axis label (title) */
    xAxisLabel?: string;
    /** Legend position */
    legendPosition?: LegendPosition;
    /** Custom Y-axis tick values */
    yAxisTicks?: number[];
    /** Format function for Y-axis values */
    yAxisFormat?: (value: number) => string;
    /** Show area fill under lines */
    showArea?: boolean;
    /** Stroke width for lines */
    strokeWidth?: number;
    /** Show dots on data points */
    showDots?: boolean;
    /** Curve type for lines */
    curveType?: 'linear' | 'smooth';
    /** Show tooltip on hover */
    showTooltip?: boolean;
    /** Accessible label for screen readers */
    'aria-label'?: string;
}
/** Sanitize series id for use as CSS variable key */
declare const sanitizeKey: (id: string | undefined | null) => string;
/** Shared legend component for all charts */
declare const WrapperChartLegend: ({ series, position, maxLabelWidth, onSeriesHover, highlightedSeries, }: {
    series: ChartSeries[];
    position: "top" | "right";
    /** Max width for legend labels before truncation (default: 120px) */
    maxLabelWidth?: number;
    /** Callback when a legend item is hovered (null on mouse leave) */
    onSeriesHover?: (seriesId: string | null) => void;
    /** Currently highlighted series id */
    highlightedSeries?: string | null;
}) => import("react/jsx-runtime").JSX.Element;
declare function LineChart({ data, series, showYAxis, showXAxis, yAxisLabel, xAxisLabel, legendPosition, yAxisTicks, yAxisFormat, showArea, strokeWidth, showDots, curveType, showTooltip, size, className, 'aria-label': ariaLabel, ...props }: LineChartProps): import("react/jsx-runtime").JSX.Element;
declare namespace LineChart {
    var displayName: string;
}
export { DEFAULT_CHART_COLORS, LineChart, lineChartVariants, sanitizeKey, WrapperChartLegend as ChartLegend, };
