import { type ComponentPropsWithoutRef, type ReactNode } from "react";
export type LineChartAxis = "y" | "x" | "both" | "none";
export interface LinePoint {
    x: number | string;
    y: number;
}
export interface LineSeries {
    id: string;
    name: ReactNode;
    color: string;
    /** Optional area fill. Truthy = paint the area under this line. */
    fill?: string;
    data: LinePoint[];
}
export interface LineChartProps extends Omit<ComponentPropsWithoutRef<"div">, "title" | "onChange"> {
    data?: LinePoint[];
    series?: LineSeries[];
    height?: number;
    stroke?: string;
    fill?: string;
    strokeWidth?: number;
    title?: ReactNode;
    total?: ReactNode;
    smooth?: boolean;
    yMax?: number;
    yMin?: number;
    showAxis?: LineChartAxis;
    yTicks?: number;
    formatValue?: (value: number) => string;
    formatX?: (x: number | string) => string;
    showTooltip?: boolean;
    showLegend?: boolean;
    /**
     * Maximum number of x-axis labels to render. When the data has more
     * points than this, labels are evenly sampled to avoid overlap.
     * Default 8.
     */
    maxXLabels?: number;
    disableAnimation?: boolean;
    /**
     * Enable drag-to-select zoom. Click-and-drag on the plot to zoom into
     * a range; double-click to reset. Default false.
     */
    zoomable?: boolean;
    "aria-label"?: string;
    onPointHover?: (point: LinePoint | null, seriesId: string | null, index: number | null) => void;
    onPointClick?: (point: LinePoint, seriesId: string, index: number) => void;
    /** Fires when the visible range changes via brush-zoom. */
    onZoomChange?: (range: {
        start: number;
        end: number;
    } | null) => void;
}
export declare const LineChart: import("react").ForwardRefExoticComponent<LineChartProps & import("react").RefAttributes<HTMLDivElement>>;
//# sourceMappingURL=LineChart.d.ts.map