import type { ChartDataPoint, ChartConfig, CurveType } from '../../types/chart.types';
import type { ChartScales } from '../../hooks/useChartScales';
import type { ChartDimensions, ChartMargins } from '../ChartContainer';
import type { MultiSeriesData } from '../ChartTooltip';
export interface LineRendererProps {
    /**
     * Chart data
     */
    data: ChartDataPoint[];
    /**
     * Chart configuration
     */
    config: ChartConfig;
    /**
     * Calculated scales (from useChartScales or ChartContainer)
     */
    scales: ChartScales;
    /**
     * Chart dimensions
     */
    dimensions: ChartDimensions;
    /**
     * Chart margins
     */
    margin: ChartMargins;
    /**
     * Line stroke width
     */
    strokeWidth?: number;
    /**
     * Whether to use curved lines
     */
    curved?: boolean;
    /**
     * Curve type
     */
    curveType?: CurveType;
    /**
     * Whether to show data point dots
     */
    showDots?: boolean;
    /**
     * Dot radius
     */
    radius?: number;
    /**
     * Hovered point info
     */
    hoveredPoint?: {
        index: number;
        key: string;
    } | null;
    /**
     * Set hovered point
     */
    onHoverPoint?: (point: {
        index: number;
        key: string;
    } | null) => void;
    /**
     * Mouse enter handler for tooltip
     */
    onMouseEnter?: (e: React.MouseEvent, content: MultiSeriesData, coordinates: {
        x: number;
        y: number;
        dimensions: ChartDimensions;
    }) => void;
    /**
     * Mouse move handler for tooltip
     */
    onMouseMove?: (e: React.MouseEvent, coordinates: {
        x: number;
        y: number;
        dimensions: ChartDimensions;
    }) => void;
    /**
     * Mouse leave handler for tooltip
     */
    onMouseLeave?: () => void;
    /**
     * Focused element index (keyboard navigation)
     */
    focusedElementIndex?: number;
    /**
     * Whether in keyboard navigation mode
     */
    isKeyboardMode?: boolean;
    /**
     * Additional CSS class name
     */
    className?: string;
}
