import type { ReactNode } from "react";
import type { CandlePoint, LivelinePoint } from "liveline";
export type LineChartPoint = {
    time: number;
    value: number;
    open?: number;
    high?: number;
    low?: number;
    close?: number;
};
export type LineChartType = "line" | "candlestick";
export type LineChartSeries = {
    id: string;
    color: string;
    points: LineChartPoint[];
    lineWidth?: number;
    lineStyle?: "solid" | "dotted" | "dashed";
};
export type LineChartSeriesControlsRenderProps = {
    /** Series currently available for toggling in the control UI. */
    series: LineChartSeries[];
    /** ID of the series currently marked as active. */
    activeSeriesId: string;
    /** Called when the user selects a different series in the controls. */
    handleSeriesChange: (seriesId: string) => void;
};
export type LineChartProps = {
    /** Series to display on the chart */
    series: LineChartSeries[];
    /** Height of the chart */
    height?: number;
    /** Width of the chart */
    width?: number | string;
    /** Class names for the chart */
    classNames?: LineChartClassNames;
    /** Whether the chart is loading */
    isLoading?: boolean;
    /** Type of chart to display (line or candlestick) */
    chartType?: LineChartType;
    /** Whether to show series controls */
    showSeriesControls?: boolean;
    /** Render series controls */
    renderSeriesControls?: (props: LineChartSeriesControlsRenderProps) => ReactNode;
    /** Live forming candle (updates in real-time, not yet closed). */
    liveCandle?: CandlePoint;
    /** Live line overlay data (e.g., real-time price series). */
    lineData?: LivelinePoint[];
    /** Live line overlay current value. */
    lineValue?: number;
    /** Whether live effects (momentum, pulse) should be active. Defaults to global enableLiveUpdates. */
    live?: boolean;
};
export type LineChartClassNames = {
    root?: string;
    controls?: string;
    defaultSeriesSwitch?: string;
    chartViewport?: string;
    liveline?: string;
};
