/**
 * @license
 * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
 * Licensed under The Universal Permissive License (UPL), Version 1.0
 * as shown at https://oss.oracle.com/licenses/upl/
 * @ignore
 */
import { VisLabelStyle } from "../utils/UNSAFE_visTypes/common/textTypes";
import { ColorProps } from "../utils/UNSAFE_interpolations/colors";
import { ChartCommonProps, ChartSeriesData, ChartItemData } from "../utils/UNSAFE_visTypes/chart";
import { MarkerShapes } from "../utils/UNSAFE_visTypes/common";
export type ScatterItem<K> = ChartItemData<K> & {
    /**
     * The id of the data item.
     */
    id: K;
    /**
     * Whether a marker is displayed for the data item. Defaults to false.
     */
    isMarkerDisplayed?: boolean;
    /**
     * The color of the marker for the data item. If not specified, chart will choose the marker color based on the series.
     * All data items belonging to a particular series will have the same marker color.
     */
    markerColor?: ColorProps['color'];
    /**
     * The shape of the marker for the data item. If not specified, chart will choose the marker shape based on the series.
     * All data items belonging to a particular series will have same marker shape.
     */
    markerType?: MarkerShapes;
    /**
     * The size of the marker for the data item. If not specified, theme specific default is used.
     */
    markerSize?: number;
    /**
     * The data label of the data item.
     */
    label?: string;
    /**
     * The style object defining the style of the data label.  The following style properties are supported: color, fontFamily, fontSize, fontStyle, fontWeight.
     */
    labelStyle?: VisLabelStyle;
    /**
     * The position of the data label.
     */
    labelPosition?: 'belowMarker' | 'aboveMarker' | 'beforeMarker' | 'afterMarker' | 'center';
    /**
     * The x value of the data item.
     */
    x: number;
    /**
     * The y value of the data item.
     */
    y: number;
};
export type ScatterSeriesData<K, D> = ChartSeriesData<K, D> & {
    /**
     * The color of the series line. If not specified, chart will choose a color from redwood categorical colors palette.
     */
    lineColor?: ColorProps['color'];
    /**
     * Whether the series line is solid, dotted or dashed. Defaults to 'solid'.
     */
    lineStyle?: 'solid' | 'dotted' | 'dashed';
    /**
     * The line width of the line series. If not specified, theme specific default is used.
     */
    lineWidth?: number;
    /**
     * The type of the line. Defaults to 'straight'.
     */
    lineType?: 'curved' | 'straight' | 'stepped' | 'segmented' | 'none' | 'auto';
};
export type ScatterChartProps<K, D extends ScatterItem<K>> = ChartCommonProps<K, D> & {
    /**
     * The array of series for the chart.
     */
    series: ScatterSeriesData<K, D>[];
    /**
     * A function that returns a ScatterChartItem for each group and series.
     */
    getDataItem: (seriesIndex: number, groupIndex: number) => D | undefined;
    /**
     * The effect to add on data labels. If set to 'outline', data labels will have a contrast outline.
     */
    dataLabelEffect?: 'outline' | 'none';
    /**
     * The line type connecting the items of the series.
     */
    lineType?: 'curved' | 'straight' | 'none';
};
