/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { AxisDefaults, CategoryAxis, ChartArea, DragAction, Legend, Pane, PaneDefaults, PlotArea, Series, SeriesDefaults, Title, Tooltip, ValueAxis, XAxis, YAxis, Zoomable } from './common/property-types';
/**
 * A configuration object that groups all root-level Chart options.
 */
export interface ChartOptions {
    /**
     * Specifies if the Chart can be panned.
     * Panning is not available for the `Donut`, `Pie`, `Funnel`, `Pyramid`, `Polar`, and `Radar` series.
     */
    pannable?: boolean | DragAction;
    /**
     * Sets the preferred rendering engine.
     * If not supported by the browser, the Chart switches to the first available mode.
     */
    renderAs?: 'svg' | 'canvas';
    /**
     * The default colors for the Chart series.
     * When all colors are used, new colors are pulled from the start again.
     */
    seriesColors?: string[];
    /**
     * The configuration options or the text of the Chart subtitle.
     */
    subtitle?: string | Title;
    /**
     * The configuration options or the text of the Chart title.
     */
    title?: string | Title;
    /**
     * If set to `true`, the Chart plays animations when it displays the series.
     * By default, animations are enabled.
     */
    transitions?: boolean;
    /**
     * Specifies if the Chart can be zoomed.
     * Zooming is not available for the `Donut`, `Pie`, `Funnel`, `Pyramid`, `Polar`, and `Radar` series.
     */
    zoomable?: boolean | Zoomable;
    /**
     * The default options for all Chart axes. Accepts the options which are supported by
     * [`categoryAxis`]({% slug api_charts_categoryaxisitemcomponent %}),
     * [`valueAxis`]({% slug api_charts_valueaxisitemcomponent %}),
     * [`xAxis`]({% slug api_charts_xaxisitemcomponent %}),
     * and [`yAxis`]({% slug api_charts_yaxisitemcomponent %}).
     */
    axisDefaults?: AxisDefaults;
    /**
     * The configuration options of the category axis.
     */
    categoryAxis?: CategoryAxis | CategoryAxis[];
    /**
     * The configuration options of the Chart area.
     * Represents the entire visible area of the Chart.
     */
    chartArea?: ChartArea;
    /**
     * The configuration options of the Chart legend.
     */
    legend?: Legend;
    /**
     * If no series are defined, or all series are empty, a [No Data Overlay](slug:databinding_chart_charts#toc-no-data-overlay) will be displayed.
     * The overlay will be automatically cleared if the series receive data.
     *
     * To disable the No Data Overlay, set this option to `false`.
     */
    noData?: boolean;
    /**
     * The configuration of the Chart panes.
     * Panes are used to split the Chart into two or more parts. The panes are ordered from top to bottom.
     * To associate each axis with a pane, set its `pane` option to the name of the desired pane.
     * Axis that do not have a specified pane are placed in the top (default) pane.
     * To move a series to the desired pane, associate them with an axis.
     */
    panes?: Pane[];
    /**
     * The default options of all panes.
     */
    paneDefaults?: PaneDefaults;
    /**
     * The configuration options of the plot area.
     * The plot area is the area which displays the series.
     */
    plotArea?: PlotArea;
    /**
     * The configuration of the Chart series.
     * The series type is determined by the value of the type field.
     * If a type value is missing, the Chart renders the type that is
     * specified in [`seriesDefaults`]({% slug api_charts_seriesdefaultscomponent %}).
     * Some options accept functions as arguments. These arguments are evaluated for each point
     * which is supplied as a parameter. If no value is returned, the Chart uses the `theme` or
     * [`seriesDefaults`]({% slug api_charts_seriesdefaultscomponent %}) values.
     */
    series?: Series[];
    /**
     * The default options of all series.
     */
    seriesDefaults?: SeriesDefaults;
    /**
     * The configuration options of the Chart series tooltips.
     * The tooltip of the Chart series is displayed when the
     * [`tooltip.visible`]({% slug api_charts_tooltipcomponent %}#toc-visible) option is set to `true`.
     */
    tooltip?: Tooltip;
    /**
     * The configuration options of the value axis.
     */
    valueAxis?: ValueAxis | ValueAxis[];
    /**
     * The configuration options of the Scatter Chart X-axis.
     * Supports all [`valueAxis`]({% slug api_charts_valueaxisitemcomponent %}) options.
     */
    xAxis?: XAxis | XAxis[];
    /**
     * The configuration options of the Scatter Chart Y-axis.
     * Supports all [`valueAxis`]({% slug api_charts_valueaxisitemcomponent %}) options.
     */
    yAxis?: YAxis | YAxis[];
}
