import { LoessResult, RegressionResults } from '@openassistant/plots';
/**
 * @internal
 *
 * Get the regression line used in echarts scatterplot.
 *
 * @param allRegressionResults - The regression results.
 * @param dataMinX - The minimum x value.
 * @param dataMaxX - The maximum x value.
 * @param dataMinY - The minimum y value.
 * @param dataMaxY - The maximum y value.
 * @returns The regression line.
 */
export declare function getRegressionLine(allRegressionResults: RegressionResults, dataMinX: number, dataMaxX: number, dataMinY: number, dataMaxY: number): [number, number][];
/**
 * @internal
 * The properties of the scatterplot chart option.
 *
 * @param xVariableName - The name of the x variable.
 * @param xData - The x data.
 * @param yVariableName - The name of the y variable.
 * @param yData - The y data.
 * @param showRegressionLine - Whether to show the regression line.
 * @param showLoess - Whether to show the loess line.
 * @param allRegressionResults - The regression results.
 * @param selectedRegressionResults - The regression results for the selected points.
 * @param unselectedRegressionResults - The regression results for the unselected points.
 * @param loessResult - The loess result.
 */
export type ScatterplotChartOptionProps = {
    xData: number[];
    yData: number[];
    showRegressionLine: boolean;
    showLoess: boolean;
    allRegressionResults: RegressionResults;
    selectedRegressionResults?: RegressionResults;
    unselectedRegressionResults?: RegressionResults;
    loessResult?: LoessResult;
};
/**
 * Get the scatterplot chart option.
 *
 * @param props - The properties of the scatterplot chart option. See {@link ScatterplotChartOptionProps} for more details.
 * @returns The scatterplot eChart option.
 */
export declare function getScatterplotChartOption({ xData, yData, showRegressionLine, showLoess, allRegressionResults, selectedRegressionResults, unselectedRegressionResults, loessResult, }: ScatterplotChartOptionProps): {
    xAxis: {
        type: string;
        axisLabel: {
            formatter: (value: number) => string;
        };
        splitLine: {
            show: boolean;
        };
    };
    yAxis: {
        type: string;
        splitLine: {
            show: boolean;
        };
        axisLabel: {
            formatter: (value: number) => string;
        };
    };
    series: ({
        type: string;
        data: [number, number][];
        showSymbol: boolean;
        itemStyle: {
            color: string;
        };
        lineStyle?: undefined;
    } | {
        type: string;
        data: [number, number][];
        showSymbol: boolean;
        itemStyle: {
            color: string;
        };
        lineStyle: {
            width: number;
        };
    } | {
        type: string;
        data: number[][];
        showSymbol: boolean;
        lineStyle: {
            opacity: number;
            type: string;
            width: number;
        };
        itemStyle: {
            color: string;
        };
    } | {
        data: number[][];
        type: string;
        symbolSize: number;
        symbol: string;
        itemStyle: {
            color: string;
            borderColor: string;
            opacity: number;
            borderWidth: number;
        };
        emphasis: {
            symbolSize: number;
            itemStyle: {
                color: string;
                borderWidth: number;
            };
        };
        animationDelay: number;
    })[];
    grid: {
        left: string;
        right: string;
        bottom: string;
        containLabel: boolean;
    };
    animation: boolean;
    progressive: number;
};
