import { OjWebElement } from '../';

/**
 * This is the base class for oj-chart WebElement, and is generated from the
 * component's metadata. Do not modify these contents since they'll be replaced
 * during the next generation.
 * Put overrides into the WebElements's subclass, OjChart.ts.
 */
export class OjChartBase extends OjWebElement {
  /**
   * Gets the value of <code>animationOnDataChange</code> property.
   * Defines the animation that is applied on data changes. Animation is automatically disabled when there are a large number of data items.
   * @return The value of <code>animationOnDataChange</code> property.
   *
   */
  public getAnimationOnDataChange(): Promise<string> {
    return this.getProperty<string>('animationOnDataChange');
  }

  /**
   * Gets the value of <code>animationOnDisplay</code> property.
   * Defines the animation that is shown on initial display. Animation is automatically disabled when there are a large number of data items.
   * @return The value of <code>animationOnDisplay</code> property.
   *
   */
  public getAnimationOnDisplay(): Promise<string> {
    return this.getProperty<string>('animationOnDisplay');
  }

  /**
   * Gets the value of <code>as</code> property.
   * An alias for the '$current' context variable passed to slot content for the itemTemplate, seriesTemplate, or groupTemplate slots.
   * @return The value of <code>as</code> property.
   * @deprecated Since 6.2.0. Set the alias directly on the template element using the data-oj-as attribute instead.
   */
  public getAs(): Promise<string> {
    return this.getProperty<string>('as');
  }

  /**
   * Gets the value of <code>coordinateSystem</code> property.
   * The coordinate system of the chart. Only applies to bar, line, area, combo, scatter, and bubble charts.
   * @return The value of <code>coordinateSystem</code> property.
   *
   */
  public getCoordinateSystem(): Promise<string> {
    return this.getProperty<string>('coordinateSystem');
  }

  /**
   * Gets the value of <code>dataCursor</code> property.
   * Defines whether the data cursor is enabled. The data cursor is not supported for polar charts. See the Help documentation for more information.
   * @return The value of <code>dataCursor</code> property.
   *
   */
  public getDataCursor(): Promise<string> {
    return this.getProperty<string>('dataCursor');
  }

  /**
   * Gets the value of <code>dataCursorBehavior</code> property.
   * Defines the behavior of the data cursor when moving between data items.
   * @return The value of <code>dataCursorBehavior</code> property.
   *
   */
  public getDataCursorBehavior(): Promise<string> {
    return this.getProperty<string>('dataCursorBehavior');
  }

  /**
   * Sets the value of <code>dataCursorPosition</code> property.
   * Specifies the position of the data cursor. Used for synchronizing data cursors across multiple charts. Null if the data cursor is not displayed.
   * @param dataCursorPosition The value to set for <code>dataCursorPosition</code>
   *
   */
  public changeDataCursorPosition(dataCursorPosition: DataCursorPosition): Promise<void> {
    return this.setProperty<DataCursorPosition>('dataCursorPosition', dataCursorPosition);
  }

  /**
   * Gets the value of <code>dataCursorPosition</code> property.
   * Specifies the position of the data cursor. Used for synchronizing data cursors across multiple charts. Null if the data cursor is not displayed.
   * @return The value of <code>dataCursorPosition</code> property.
   *
   */
  public getDataCursorPosition(): Promise<DataCursorPosition> {
    return this.getProperty<DataCursorPosition>('dataCursorPosition');
  }

  /**
   * Gets the value of <code>dataLabel</code> property.
   * A function that returns a custom data label. The function takes a context argument, provided by the chart. See the Help documentation for more information.
   * @return The value of <code>dataLabel</code> property.
   *
   */
  public getDataLabel(): Promise<null> {
    return this.getProperty<null>('dataLabel');
  }

  /**
   * Gets the value of <code>dnd</code> property.
   * Provides support for HTML5 Drag and Drop events. See the Help documentation for more information.
   * @return The value of <code>dnd</code> property.
   *
   */
  public getDnd(): Promise<Dnd> {
    return this.getProperty<Dnd>('dnd');
  }

  /**
   * Gets the value of <code>dragMode</code> property.
   * The action that is performed when a drag occurs on the chart. See the Help documentation for more information.
   * @return The value of <code>dragMode</code> property.
   *
   */
  public getDragMode(): Promise<string> {
    return this.getProperty<string>('dragMode');
  }

  /**
   * Gets the value of <code>drilling</code> property.
   * Specifies whether drilling is enabled. Drillable objects will show a pointer cursor on hover and fire an ojDrill event on click (double click if selection is enabled). See the Help documentation for more information.
   * @return The value of <code>drilling</code> property.
   *
   */
  public getDrilling(): Promise<string> {
    return this.getProperty<string>('drilling');
  }

  /**
   * Gets the value of <code>groupComparator</code> property.
   * A comparator function that determines the ordering of the chart groups when using a DataProvider. If undefined, the group will follow the order in which they are found in the data.
   * @return The value of <code>groupComparator</code> property.
   *
   */
  public getGroupComparator(): Promise<null> {
    return this.getProperty<null>('groupComparator');
  }

  /**
   * Gets the value of <code>groups</code> property.
   * An array of strings identifying the group labels, or an array of objects specifying group labels and styles. See the Help documentation for more information.
   * @return The value of <code>groups</code> property.
   *
   */
  public getGroups(): Promise<Array<string> | Array<Groups> | null | null> {
    return this.getProperty<Array<string> | Array<Groups> | null | null>('groups');
  }

  /**
   * Sets the value of <code>hiddenCategories</code> property.
   * An array of category strings used for filtering. Series or data items with any category matching an item in this array will be filtered.
   * @param hiddenCategories The value to set for <code>hiddenCategories</code>
   *
   */
  public changeHiddenCategories(hiddenCategories: Array<string>): Promise<void> {
    return this.setProperty<Array<string>>('hiddenCategories', hiddenCategories);
  }

  /**
   * Gets the value of <code>hiddenCategories</code> property.
   * An array of category strings used for filtering. Series or data items with any category matching an item in this array will be filtered.
   * @return The value of <code>hiddenCategories</code> property.
   *
   */
  public getHiddenCategories(): Promise<Array<string>> {
    return this.getProperty<Array<string>>('hiddenCategories');
  }

  /**
   * Gets the value of <code>hideAndShowBehavior</code> property.
   * Defines the hide and show behavior that is performed when clicking on a legend item. When data items are hidden, the y axes can be optionally rescaled to fit to the remaining data.
   * @return The value of <code>hideAndShowBehavior</code> property.
   *
   */
  public getHideAndShowBehavior(): Promise<string> {
    return this.getProperty<string>('hideAndShowBehavior');
  }

  /**
   * Gets the value of <code>highlightMatch</code> property.
   * The matching condition for the highlightedCategories property. See the Help documentation for more information.
   * @return The value of <code>highlightMatch</code> property.
   *
   */
  public getHighlightMatch(): Promise<string> {
    return this.getProperty<string>('highlightMatch');
  }

  /**
   * Sets the value of <code>highlightedCategories</code> property.
   * An array of category strings used for highlighting. Series or data items matching categories in this array will be highlighted.
   * @param highlightedCategories The value to set for <code>highlightedCategories</code>
   *
   */
  public changeHighlightedCategories(highlightedCategories: Array<string>): Promise<void> {
    return this.setProperty<Array<string>>('highlightedCategories', highlightedCategories);
  }

  /**
   * Gets the value of <code>highlightedCategories</code> property.
   * An array of category strings used for highlighting. Series or data items matching categories in this array will be highlighted.
   * @return The value of <code>highlightedCategories</code> property.
   *
   */
  public getHighlightedCategories(): Promise<Array<string>> {
    return this.getProperty<Array<string>>('highlightedCategories');
  }

  /**
   * Gets the value of <code>hoverBehavior</code> property.
   * Defines the behavior applied when hovering over data items.
   * @return The value of <code>hoverBehavior</code> property.
   *
   */
  public getHoverBehavior(): Promise<string> {
    return this.getProperty<string>('hoverBehavior');
  }

  /**
   * Gets the value of <code>initialZooming</code> property.
   * Specifies whether automatic initial zooming is enabled. Only applies to bar, line, area, and combo charts with zoomAndScroll turned on. See the Help documentation for more information.
   * @return The value of <code>initialZooming</code> property.
   *
   */
  public getInitialZooming(): Promise<string> {
    return this.getProperty<string>('initialZooming');
  }

  /**
   * Gets the value of <code>legend</code> property.
   * An object defining the style, positioning, and behavior of the legend.
   * @return The value of <code>legend</code> property.
   *
   */
  public getLegend(): Promise<Legend> {
    return this.getProperty<Legend>('legend');
  }

  /**
   * Gets the value of <code>multiSeriesDrilling</code> property.
   * Specifies whether drilling on chart objects representing multiple series (e.g. other slice and legend item in pie charts) is enabled or not. Multiseries drill event is fired from the other slice and legend item of pieChart.
   * @return The value of <code>multiSeriesDrilling</code> property.
   *
   */
  public getMultiSeriesDrilling(): Promise<string> {
    return this.getProperty<string>('multiSeriesDrilling');
  }

  /**
   * Gets the value of <code>orientation</code> property.
   * The chart orientation. Only applies to bar, line, area, combo, box plot, and funnel charts.
   * @return The value of <code>orientation</code> property.
   *
   */
  public getOrientation(): Promise<string> {
    return this.getProperty<string>('orientation');
  }

  /**
   * Gets the value of <code>otherThreshold</code> property.
   * Specifies the fraction of the whole pie under which a slice would be aggregated into an "Other" slice. Valid values range from 0 (default) to 1. For example, a value of 0.1 would cause all slices which are less than 10% of the pie to be aggregated into the "Other" slice. Only applies to pie chart.
   * @return The value of <code>otherThreshold</code> property.
   *
   */
  public getOtherThreshold(): Promise<number> {
    return this.getProperty<number>('otherThreshold');
  }

  /**
   * Gets the value of <code>overview</code> property.
   * An object defining the overview scrollbar. Only applies if zoomAndScroll is not off. Currently only supported for vertical bar, line, area, stock, and combo charts.
   * @return The value of <code>overview</code> property.
   *
   */
  public getOverview(): Promise<Overview> {
    return this.getProperty<Overview>('overview');
  }

  /**
   * Gets the value of <code>pieCenter</code> property.
   * An object defining the center content of a pie chart. Either a label can be displayed at the center of the pie chart or custom HTML content.
   * @return The value of <code>pieCenter</code> property.
   *
   */
  public getPieCenter(): Promise<PieCenter> {
    return this.getProperty<PieCenter>('pieCenter');
  }

  /**
   * Gets the value of <code>plotArea</code> property.
   * An object defining the style of the plot area.
   * @return The value of <code>plotArea</code> property.
   *
   */
  public getPlotArea(): Promise<PlotArea> {
    return this.getProperty<PlotArea>('plotArea');
  }

  /**
   * Gets the value of <code>polarGridShape</code> property.
   * Defines whether the grid shape of the polar chart is circle or polygon. Only applies to polar line and area charts.
   * @return The value of <code>polarGridShape</code> property.
   *
   */
  public getPolarGridShape(): Promise<string> {
    return this.getProperty<string>('polarGridShape');
  }

  /**
   * Sets the value of <code>selection</code> property.
   * An array used to define the ids of the initially selected objects. See the Help documentation for more information.
   * @param selection The value to set for <code>selection</code>
   *
   */
  public changeSelection(selection: Array<any>): Promise<void> {
    return this.setProperty<Array<any>>('selection', selection);
  }

  /**
   * Gets the value of <code>selection</code> property.
   * An array used to define the ids of the initially selected objects. See the Help documentation for more information.
   * @return The value of <code>selection</code> property.
   *
   */
  public getSelection(): Promise<Array<any>> {
    return this.getProperty<Array<any>>('selection');
  }

  /**
   * Gets the value of <code>selectionMode</code> property.
   * The type of selection behavior that is enabled on the chart. See the Help documentation for more information.
   * @return The value of <code>selectionMode</code> property.
   *
   */
  public getSelectionMode(): Promise<string> {
    return this.getProperty<string>('selectionMode');
  }

  /**
   * Gets the value of <code>series</code> property.
   * An array of objects defining series labels and override series styles. See the Help documentation for more information.
   * @return The value of <code>series</code> property.
   *
   */
  public getSeries(): Promise<Array<Series> | null | null> {
    return this.getProperty<Array<Series> | null | null>('series');
  }

  /**
   * Gets the value of <code>seriesComparator</code> property.
   * A comparator function that determines the ordering of the chart series when using a DataProvider. If undefined, the series will follow the order in which they are found in the data.
   * @return The value of <code>seriesComparator</code> property.
   *
   */
  public getSeriesComparator(): Promise<null> {
    return this.getProperty<null>('seriesComparator');
  }

  /**
   * Gets the value of <code>sorting</code> property.
   * Specifies the sorting of the data. It should only be used for pie charts, bar/line/area charts with one series, or stacked bar/area charts. Sorting will not apply when using a hierarchical group axis.
   * @return The value of <code>sorting</code> property.
   *
   */
  public getSorting(): Promise<string> {
    return this.getProperty<string>('sorting');
  }

  /**
   * Gets the value of <code>splitDualY</code> property.
   * Defines whether the plot area is split into two sections, so that sets of data assigned to the different Y-axes appear in different parts of the plot area. Stock charts do not support "off".
   * @return The value of <code>splitDualY</code> property.
   *
   */
  public getSplitDualY(): Promise<string> {
    return this.getProperty<string>('splitDualY');
  }

  /**
   * Gets the value of <code>splitterPosition</code> property.
   * In a split dual-Y chart, specifies the fraction of the space that is given to the Y-axis subchart. Valid values are numbers from 0 to 1.
   * @return The value of <code>splitterPosition</code> property.
   *
   */
  public getSplitterPosition(): Promise<number> {
    return this.getProperty<number>('splitterPosition');
  }

  /**
   * Gets the value of <code>stack</code> property.
   * Defines whether the data items are stacked. Only applies to bar, line, area, and combo charts. Does not apply to range series.
   * @return The value of <code>stack</code> property.
   *
   */
  public getStack(): Promise<string> {
    return this.getProperty<string>('stack');
  }

  /**
   * Gets the value of <code>stackLabel</code> property.
   * Defines whether the total values of stacked data items should be displayed. Only applies to bar charts. See the Help documentation for more information.
   * @return The value of <code>stackLabel</code> property.
   *
   */
  public getStackLabel(): Promise<string> {
    return this.getProperty<string>('stackLabel');
  }

  /**
   * Gets the value of <code>stackLabelProvider</code> property.
   * A function that returns a custom stack label. The function takes a context argument, provided by the chart. See the Help documentation for more information.
   * @return The value of <code>stackLabelProvider</code> property.
   *
   */
  public getStackLabelProvider(): Promise<null> {
    return this.getProperty<null>('stackLabelProvider');
  }

  /**
   * Gets the value of <code>styleDefaults</code> property.
   * An object defining the default styles for series colors, marker shapes, and other style attributes. Properties specified on this object may be overridden by specifications on the data object.
   * @return The value of <code>styleDefaults</code> property.
   *
   */
  public getStyleDefaults(): Promise<StyleDefaults> {
    return this.getProperty<StyleDefaults>('styleDefaults');
  }

  /**
   * Gets the value of <code>timeAxisType</code> property.
   * The type of time axis to display in the chart. Time axis is only supported for Cartesian bar, line, area, stock, box plot, and combo charts. See the Help documentation for more information.
   * @return The value of <code>timeAxisType</code> property.
   *
   */
  public getTimeAxisType(): Promise<string> {
    return this.getProperty<string>('timeAxisType');
  }

  /**
   * Gets the value of <code>tooltip</code> property.
   * An object containing an optional callback function for tooltip customization.
   * @return The value of <code>tooltip</code> property.
   *
   */
  public getTooltip(): Promise<Tooltip> {
    return this.getProperty<Tooltip>('tooltip');
  }

  /**
   * Gets the value of <code>touchResponse</code> property.
   * Specifies configuration options for touch and hold delays on mobile devices. See the Help documentation for more information.
   * @return The value of <code>touchResponse</code> property.
   *
   */
  public getTouchResponse(): Promise<string> {
    return this.getProperty<string>('touchResponse');
  }

  /**
   * Gets the value of <code>trackResize</code> property.
   * Defines whether the element will automatically render in response to changes in size. See the Help documentation for more information.
   * @return The value of <code>trackResize</code> property.
   *
   */
  public getTrackResize(): Promise<string> {
    return this.getProperty<string>('trackResize');
  }

  /**
   * Gets the value of <code>translations</code> property.
   * A collection of translated resources from the translation bundle, or null if this component has no resources.
   * @return The value of <code>translations</code> property.
   *
   */
  public getTranslations(): Promise<Translations | null> {
    return this.getProperty<Translations | null>('translations');
  }

  /**
   * Gets the value of <code>type</code> property.
   * Specifies the chart type. See the Help documentation for more information.
   * @return The value of <code>type</code> property.
   *
   */
  public getType(): Promise<string> {
    return this.getProperty<string>('type');
  }

  /**
   * Gets the value of <code>valueFormats</code> property.
   * An object specifying value formatting and tooltip behavior, whose keys generally correspond to the attribute names on the data items.
   * @return The value of <code>valueFormats</code> property.
   *
   */
  public getValueFormats(): Promise<ValueFormats> {
    return this.getProperty<ValueFormats>('valueFormats');
  }

  /**
   * Gets the value of <code>xAxis</code> property.
   * An object defining properties for the axis, tick marks, tick labels, and axis titles.
   * @return The value of <code>xAxis</code> property.
   *
   */
  public getXAxis(): Promise<XAxis> {
    return this.getProperty<XAxis>('xAxis');
  }

  /**
   * Gets the value of <code>y2Axis</code> property.
   * An object defining properties for the axis, tick marks, tick labels, and axis titles. Y2 axis is only supported for Cartesian bar, line, area, and combo charts.
   * @return The value of <code>y2Axis</code> property.
   *
   */
  public getY2Axis(): Promise<Y2Axis> {
    return this.getProperty<Y2Axis>('y2Axis');
  }

  /**
   * Gets the value of <code>yAxis</code> property.
   * An object defining properties for the axis, tick marks, tick labels, and axis titles.
   * @return The value of <code>yAxis</code> property.
   *
   */
  public getYAxis(): Promise<YAxis> {
    return this.getProperty<YAxis>('yAxis');
  }

  /**
   * Gets the value of <code>zoomAndScroll</code> property.
   * Specifies the zoom and scroll behavior of the chart. See the Help documentation for more information.
   * @return The value of <code>zoomAndScroll</code> property.
   *
   */
  public getZoomAndScroll(): Promise<string> {
    return this.getProperty<string>('zoomAndScroll');
  }

  /**
   * Gets the value of <code>zoomDirection</code> property.
   * Specifies the zoom direction of bubble and scatter charts. "Auto" zooms in both x and y direction. Use "x" or "y" for single direction zooming.
   * @return The value of <code>zoomDirection</code> property.
   *
   */
  public getZoomDirection(): Promise<string> {
    return this.getProperty<string>('zoomDirection');
  }
}
export interface DataCursorPosition {
  /**
   * The x value of the data cursor.
   */
  x: number | string;
  /**
   * The y value of the data cursor. If both y and y2 are defined, y will take precedence.
   */
  y: number;
  /**
   * The y2 value of the data cursor. If both y and y2 are defined, y will take precedence.
   */
  y2: number;
}
export interface Dnd {
  /**
   * An object that describes drag functionality.
   */
  drag: DndDrag;
  /**
   * An object that describes drop functionality.
   */
  drop: DndDrop;
}
export interface DndDrag {
  /**
   * Allows dragging of chart groups from the categorical axis labels.
   */
  groups: DndDragGroups;
  /**
   * Allows dragging of chart data items, including bars, line/area/scatter markers, bubbles, and pie/funnel/pyramid slices.
   */
  items: DndDragItems;
  /**
   * Allows dragging of chart series from the legend items.
   */
  series: DndDragSeries;
}
export interface DndDragGroups {
  /**
   * The MIME types to use for the dragged data in the dataTransfer object. This can be a string if there is only one type, or an array of strings if multiple types are needed.
   */
  dataTypes: string | Array<string>;
}
export interface DndDragItems {
  /**
   * The MIME types to use for the dragged data in the dataTransfer object. This can be a string if there is only one type, or an array of strings if multiple types are needed.
   */
  dataTypes: string | Array<string>;
}
export interface DndDragSeries {
  /**
   * The MIME types to use for the dragged data in the dataTransfer object. This can be a string if there is only one type, or an array of strings if multiple types are needed.
   */
  dataTypes: string | Array<string>;
}
export interface DndDrop {
  /**
   * Allows dropping on the legend.
   */
  legend: DndDropLegend;
  /**
   * Allows dropping on the plot area.
   */
  plotArea: DndDropPlotArea;
  /**
   * Allows dropping on the X axis.
   */
  xAxis: DndDropXAxis;
  /**
   * Allows dropping on the Y2 axis.
   */
  y2Axis: DndDropY2Axis;
  /**
   * Allows dropping on the Y axis.
   */
  yAxis: DndDropYAxis;
}
export interface DndDropLegend {
  /**
   * An array of MIME data types this element can accept. This property is required unless dragEnter, dragOver, and drop callback functions are specified to handle the corresponding events.
   */
  dataTypes: string | Array<string>;
}
export interface DndDropPlotArea {
  /**
   * An array of MIME data types this element can accept. This property is required unless dragEnter, dragOver, and drop callback functions are specified to handle the corresponding events.
   */
  dataTypes: string | Array<string>;
}
export interface DndDropXAxis {
  /**
   * An array of MIME data types this element can accept. This property is required unless dragEnter, dragOver, and drop callback functions are specified to handle the corresponding events.
   */
  dataTypes: string | Array<string>;
}
export interface DndDropY2Axis {
  /**
   * An array of MIME data types this element can accept. This property is required unless dragEnter, dragOver, and drop callback functions are specified to handle the corresponding events.
   */
  dataTypes: string | Array<string>;
}
export interface DndDropYAxis {
  /**
   * An array of MIME data types this element can accept. This property is required unless dragEnter, dragOver, and drop callback functions are specified to handle the corresponding events.
   */
  dataTypes: string | Array<string>;
}
export interface Groups {
  /**
   * Whether drilling is enabled on the group label. See the Help documentation for more information.
   */
  drilling: string;
  /**
   * An array of nested group objects.
   */
  groups: Array<object>;
  /**
   * The id of the group. Defaults to the name if not specified. This is also used to specify the date for non mixed frequency time axes. The specified date for non mixed frequency time axes must be an ISO string.
   */
  id: string | number;
  /**
   * The CSS style object defining the style of the group label text. See the Help documentation for more information.
   */
  labelStyle: object;
  /**
   * The name of the group.
   */
  name: string;
  /**
   * The description of the group. This is used for customizing the tooltip text and only applies to a categorical axis.
   */
  shortDesc: string;
}
export interface Legend {
  /**
   * The color of the legend background.
   */
  backgroundColor: string;
  /**
   * The border color of the legend.
   */
  borderColor: string;
  /**
   * Defines the maximum size of the legend in pixels (e.g. '50px') or percent (e.g. '15%').
   */
  maxSize: string;
  /**
   * The position of the legend within the chart. By default, the legend will be placed on the side or bottom, based on the size of the chart and the legend contents.
   */
  position: string;
  /**
   * An object defining the reference object section in the legend.
   */
  referenceObjectSection: LegendReferenceObjectSection;
  /**
   * Defines whether the legend is displayed. If set to auto, the legend will be hidden for charts with a large number of series. See the Help documentation for more information.
   */
  rendered: string;
  /**
   * Defines whether scrolling is enabled for the legend.
   */
  scrolling: string;
  /**
   * An array of objects defining the additional legend sections, other than the default series and reference object sections.
   */
  sections: Array<LegendSections>;
  /**
   * An object defining the series section in the legend.
   */
  seriesSection: LegendSeriesSection;
  /**
   * Defines the size of the legend in pixels (e.g. '50px') or percent (e.g. '15%').
   */
  size: string;
  /**
   * The height of the legend symbol (line or marker) in pixels.
   */
  symbolHeight: number;
  /**
   * The width of the legend symbol (line or marker) in pixels.
   */
  symbolWidth: number;
  /**
   * The CSS style object defining the style of the legend text.
   */
  textStyle: object;
  /**
   * The legend title.
   */
  title: string;
  /**
   * The horizontal alignment of the title.
   */
  titleHalign: string;
  /**
   * The CSS style object defining the style of the title.
   */
  titleStyle: object;
}
export interface LegendReferenceObjectSection {
  /**
   * The title of the section.
   */
  title: string;
  /**
   * The horizontal alignment of the section title. If the section is collapsible or nested, only start alignment is supported.
   */
  titleHalign: string;
  /**
   * The CSS style object defining the style of the section title.
   */
  titleStyle: object;
}
export interface LegendSections {
  /**
   * An array of objects with the following properties defining the legend items. Also accepts a Promise for deferred data rendering. No data will be rendered if the Promise is rejected.
   */
  items: Array<object>;
  /**
   * An array of nested legend sections.
   */
  sections: Array<object>;
  /**
   * The title of the section.
   */
  title: string;
  /**
   * The horizontal alignment of the section title. If the section is collapsible or nested, only start alignment is supported.
   */
  titleHalign: string;
  /**
   * The CSS style object defining the style of the section title.
   */
  titleStyle: object;
}
export interface LegendSeriesSection {
  /**
   * The title of the section.
   */
  title: string;
  /**
   * The horizontal alignment of the section title. If the section is collapsible or nested, only start alignment is supported.
   */
  titleHalign: string;
  /**
   * The CSS style object defining the style of the section title.
   */
  titleStyle: object;
}
export interface Overview {
  /**
   * An object containing the property override for the overview chart. See the Help documentation for more information.
   */
  content: object;
  /**
   * Specifies the height of the overview scrollbar in pixels (e.g. '50px') or percent (e.g. '15%').
   */
  height: string;
  /**
   * Specifies whether the overview scrollbar is rendered. If not, simple scrollbar will be used.
   */
  rendered: string;
}
export interface PieCenter {
  /**
   * The converter to format the label if it is numeric. See the Help documentation for more information.
   */
  converter: object;
  /**
   * Specifies the text for the label. When a innerRadius is specified, the label will automatically be scaled to fit within the inner circle. If the innerRadius is 0, the default font size will be used.
   */
  label: number | string;
  /**
   * The CSS style object defining the style of the label.
   */
  labelStyle: object;
  /**
   * A function that returns custom center content. The function takes a context argument, provided by the chart. See the Help documentation for more information.
   */
  renderer: null | null;
  /**
   * The scaling behavior of the label if it is numeric. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
}
export interface PlotArea {
  /**
   * The color of the plot area background.
   */
  backgroundColor: string;
  /**
   * The border color to be set on the chart's plot area.
   */
  borderColor: string;
  /**
   * The border width to be set on the chart's plot area.
   */
  borderWidth: number;
  /**
   * Specifies whether the plot area is rendered.
   */
  rendered: string;
}
export interface Series {
  /**
   * The area color of the series. Only applies if series type is area or lineWithArea.
   */
  areaColor: string;
  /**
   * The CSS style class to apply if series type is area or lineWithArea. See the Help documentation for more information.
   */
  areaSvgClassName: string;
  /**
   * The inline style to apply if series type is area or lineWithArea. See the Help documentation for more information.
   */
  areaSvgStyle: object;
  /**
   * Defines whether the series is associated with the y2 axis. Only applies to Cartesian bar, line, area, and combo charts.
   */
  assignedToY2: string;
  /**
   * The border color of the series.
   */
  borderColor: string;
  /**
   * The border width of the series.
   */
  borderWidth: number;
  /**
   * An object containing the style properties of the box plot series.
   */
  boxPlot: SeriesBoxPlot;
  /**
   * An optional array of category strings corresponding to this series. This allows highlighting and filtering of a series through interactions with legend sections. If not defined, the series id is used.
   */
  categories: Array<string>;
  /**
   * The color of the series. The chart legend item will inherit this color value.
   */
  color: string;
  /**
   * Defines whether the series should be shown in the legend. When set to 'auto', the series will not be displayed in the legend if it has null data or if it is a stock, funnel, or pyramid series.
   */
  displayInLegend: string;
  /**
   * Whether drilling is enabled on the series item. See the Help documentation for more information.
   */
  drilling: string;
  /**
   * The id of the series. Defaults to the name or the series index if not specified.
   */
  id: string | number;
  /**
   * An array of values or an array of objects that defines the data items for the series.
   */
  items: Array<object>;
  /**
   * The line style of the data line. Only applies to line, lineWithArea, scatter, and bubble series.
   */
  lineStyle: string;
  /**
   * The line type of the data line or area. Only applies to line, area, scatter, and bubble series. See the Help documentation for more information.
   */
  lineType: string;
  /**
   * The width of the data line. Only applies to line, lineWithArea, scatter, and bubble series.
   */
  lineWidth: number;
  /**
   * The color of the data markers, if different from the series color.
   */
  markerColor: string;
  /**
   * Defines whether the data marker is displayed. Only applies to line, area, scatter, and bubble series. See the Help documentation for more information.
   */
  markerDisplayed: string;
  /**
   * The shape of the data markers. In addition to the built-in shapes, it may also take SVG path commands to specify a custom shape. See the Help documentation for more information.
   */
  markerShape: string;
  /**
   * The size of the data markers.
   */
  markerSize: number;
  /**
   * The CSS style class to apply to the data markers. See the Help documentation for more information.
   */
  markerSvgClassName: string;
  /**
   * The inline style to apply to the data markers. See the Help documentation for more information.
   */
  markerSvgStyle: object;
  /**
   * The name of the series, displayed in the legend and tooltips.
   */
  name: string;
  /**
   * The pattern used to fill the series. A solid fill is used by default, unless the seriesEffect is 'pattern'.
   */
  pattern: string;
  /**
   * A number from 0 to 1 indicating the amount to explode the pie slice. Only applies to pie charts.
   */
  pieSliceExplode: number;
  /**
   * The description of this series. This is used for accessibility and for customizing the tooltip text on the corresponding legend item for the series.
   */
  shortDesc: string;
  /**
   * The URI of the custom image. If specified, it takes precedence over shape.
   */
  source: string;
  /**
   * The optional URI for the hover state. If not specified, the source image will be used.
   */
  sourceHover: string;
  /**
   * The optional URI for the hover selected state. If not specified, the source image will be used.
   */
  sourceHoverSelected: string;
  /**
   * The optional URI for the selected state. If not specified, the source image will be used.
   */
  sourceSelected: string;
  /**
   * In stacked charts, groups series together for stacking. All series without a stackCategory will be assigned to the same stack.
   */
  stackCategory: string;
  /**
   * The CSS style class to apply to the series. For series of type lineWithArea, this style will only be applied to the line if areaSvgClassName is also specified. See the Help documentation for more information.
   */
  svgClassName: string;
  /**
   * The inline style to apply to the series. For series of type lineWithArea, this style will only be applied to the line if areaSvgStyle is also specified. See the Help documentation for more information.
   */
  svgStyle: object;
  /**
   * The type of data objects to display for this series. Only applies to bar, line, area, stock, box plot, and combo charts.
   */
  type: string;
}
export interface SeriesBoxPlot {
  /**
   * The CSS style class to apply to the median line.
   */
  medianSvgClassName: string;
  /**
   * The CSS inline style to apply to the median line. Only SVG CSS style properties are supported.
   */
  medianSvgStyle: object;
  /**
   * The color of the Q2 segment of the box.
   */
  q2Color: string;
  /**
   * The CSS style class to apply to the Q2 segment of the box. See the Help documentation for more information.
   */
  q2SvgClassName: string;
  /**
   * The CSS inline style to apply to the Q2 segment of the box. See the Help documentation for more information.
   */
  q2SvgStyle: object;
  /**
   * The color of the Q3 segment of the box.
   */
  q3Color: string;
  /**
   * The CSS style class to apply to the Q3 segment of the box. See the Help documentation for more information.
   */
  q3SvgClassName: string;
  /**
   * The CSS inline style to apply to the Q3 segment of the box. See the Help documentation for more information.
   */
  q3SvgStyle: object;
  /**
   * Specifies the length of the whisker ends in pixels (e.g. '9px') or as a percentage of the box width (e.g. '50%').
   */
  whiskerEndLength: string;
  /**
   * The CSS style class to apply to the whisker ends.
   */
  whiskerEndSvgClassName: string;
  /**
   * The CSS inline style to apply to the whisker ends. Only SVG CSS style properties are supported.
   */
  whiskerEndSvgStyle: object;
  /**
   * The CSS style class to apply to the whisker stems.
   */
  whiskerSvgClassName: string;
  /**
   * The CSS inline style to apply to the whisker stems. Only SVG CSS style properties are supported.
   */
  whiskerSvgStyle: object;
}
export interface StyleDefaults {
  /**
   * The color of the indicator shown for a decreasing data change animation.
   */
  animationDownColor: string;
  /**
   * The duration of the animations in milliseconds.
   */
  animationDuration: number;
  /**
   * Defines whether data change indicators are displayed during animation.
   */
  animationIndicators: string;
  /**
   * The color of the indicator shown for an increasing data change animation.
   */
  animationUpColor: string;
  /**
   * Specifies the width of the bar group gap as a ratio of the group width. The valid value is a number from 0 to 1.
   */
  barGapRatio: number;
  /**
   * The default border color for the data items. For funnel and pyramid charts, it is used for the slice border.
   */
  borderColor: string;
  /**
   * The default border width for the data items. For funnel and pyramid charts, it is used for the slice border.
   */
  borderWidth: number;
  /**
   * An object containing the style properties of the box plot items.
   */
  boxPlot: StyleDefaultsBoxPlot;
  /**
   * The array defining the default color ramp for the series.
   */
  colors: Array<string>;
  /**
   * An object defining the data cursor style.
   */
  dataCursor: StyleDefaultsDataCursor;
  /**
   * Specifies the presence and size of the gaps between data items, such as bars, markers, and areas. Valid values are a percentage string from 0% to 100%, where 100% produces the maximum supported gaps.
   */
  dataItemGaps: string;
  /**
   * Rule for adjusting data label layout. See the Help documentation for more information.
   */
  dataLabelCollision: string;
  /**
   * The position of the data label. For range series, if an array of two values is provided, the first and second value will apply to the low and high point respectively. See the Help documentation for more information.
   */
  dataLabelPosition: string | Array<string>;
  /**
   * The CSS style object defining the style of the data label. See the Help documentation for more information.
   */
  dataLabelStyle: object | Array<object>;
  /**
   * The default background color of funnel slices that show actual/target values.
   */
  funnelBackgroundColor: string;
  /**
   * An object defining the style for hierarchical label separators.
   */
  groupSeparators: StyleDefaultsGroupSeparators;
  /**
   * Specifies initial hover delay in milliseconds for highlighting items in chart.
   */
  hoverBehaviorDelay: number;
  /**
   * The line style of the data line. Only applies to line, lineWithArea, scatter, and bubble series.
   */
  lineStyle: string;
  /**
   * The line type of the data line or area. Only applies to line, area, scatter, and bubble series. See the Help documentation for more information.
   */
  lineType: string;
  /**
   * The width of the data line. Only applies to line, lineWithArea, scatter, and bubble series.
   */
  lineWidth: number;
  /**
   * The color of the data markers, if different from the series color.
   */
  markerColor: string;
  /**
   * Defines whether the data markers should be displayed. Only applies to line, area, scatter, and bubble series. If auto, the markers will be displayed whenever the data points are not connected by a line.
   */
  markerDisplayed: string;
  /**
   * The shape of the data markers. In addition to the built-in shapes, it may also take SVG path commands to specify a custom shape. See the Help documentation for more information.
   */
  markerShape: string;
  /**
   * The size of the data markers in pixels.
   */
  markerSize: number;
  /**
   * The border color of the marquee. Applies to marquee selection and marquee zoom.
   */
  marqueeBorderColor: string;
  /**
   * The fill color of the marquee. Applies to marquee selection and marquee zoom.
   */
  marqueeColor: string;
  /**
   * Specifies the maximum width of each bar in pixels.
   */
  maxBarWidth: number;
  /**
   * Specifies the color of the "Other" slice. Only applies to pie chart.
   */
  otherColor: string;
  /**
   * The array defining the default pattern ramp for the series. This is used only when seriesEffect is 'pattern'.
   */
  patterns: Array<string>;
  /**
   * The color of the line extending from the pie slice to the slice label.
   */
  pieFeelerColor: string;
  /**
   * Specifies the radius of the inner circle that can be used to create a donut chart. Valid values range from 0 (default) to 1. Not supported if 3D effect is on.
   */
  pieInnerRadius: number;
  /**
   * The selection effect that is applied to selected items. The values explode and highlightAndExplode only apply to pie charts.
   */
  selectionEffect: string;
  /**
   * Defines the fill effect for the data items.
   */
  seriesEffect: string;
  /**
   * The array defining the default shape ramp for the series. Valid values are defined in the markerShape attribute.
   */
  shapes: Array<string>;
  /**
   * The CSS style object defining the style of the stack label.
   */
  stackLabelStyle: object;
  /**
   * In stock charts, the color of the candlestick when the 'open' value is greater than the 'close' value.
   */
  stockFallingColor: string;
  /**
   * In stock charts, the color of the range bars for candlestick.
   */
  stockRangeColor: string;
  /**
   * In stock charts, the color of the candlestick when the 'close' value is greater than the 'open' value.
   */
  stockRisingColor: string;
  /**
   * In stock charts, the color of the volume bars. If specified, overrides the default rising and falling colors used by the volume bars.
   */
  stockVolumeColor: string;
  /**
   * Defines whether the chart is displayed with a 3D effect. Only applies to pie, funnel and pyramid charts.
   */
  threeDEffect: string;
  /**
   * The CSS style object defining the style of the labels in the tooltip.
   */
  tooltipLabelStyle: object;
  /**
   * The CSS style object defining the style of the values in the tooltip.
   */
  tooltipValueStyle: object;
}
export interface StyleDefaultsBoxPlot {
  /**
   * The CSS style class to apply to the median line.
   */
  medianSvgClassName: string;
  /**
   * The CSS inline style to apply to the median line. Only SVG CSS style properties are supported.
   */
  medianSvgStyle: object;
  /**
   * Specifies the length of the whisker ends in pixels (e.g. '9px') or as a percentage of the box width (e.g. '50%').
   */
  whiskerEndLength: string;
  /**
   * The CSS style class to apply to the whisker ends.
   */
  whiskerEndSvgClassName: string;
  /**
   * The CSS inline style to apply to the whisker ends.
   */
  whiskerEndSvgStyle: object;
  /**
   * The CSS style class to apply to the whisker stems.
   */
  whiskerSvgClassName: string;
  /**
   * The CSS inline style to apply to the whisker stems.
   */
  whiskerSvgStyle: object;
}
export interface StyleDefaultsDataCursor {
  /**
   * The color of the data cursor line.
   */
  lineColor: string;
  /**
   * The line style of the data cursor line.
   */
  lineStyle: string;
  /**
   * The width of the data cursor line in pixels.
   */
  lineWidth: number;
  /**
   * The color of the data cursor marker. Defaults to the data series color.
   */
  markerColor: string;
  /**
   * Whether the data cursor marker is displayed. Marker should only be hidden if the data cursor is displaying information for the entire group.
   */
  markerDisplayed: string;
  /**
   * The size of the data cursor marker in pixels.
   */
  markerSize: number;
}
export interface StyleDefaultsGroupSeparators {
  /**
   * The color of the separators lines.
   */
  color: string;
  /**
   * Defines whether the group separators are displayed.
   */
  rendered: string;
}
export interface Tooltip {}
export interface Translations {
  /**
   * Used to describe a container that contains controls.
   */
  accessibleContainsControls: string;
  /**
   * Used to describe the data visualization type for accessibility.
   */
  componentName: string;
  /**
   * Used to display a label and its value.
   */
  labelAndValue: string;
  /**
   * Text shown for clearing multiple selection on touch devices.
   */
  labelClearSelection: string;
  /**
   * Used for the close value in the tooltip for stock data.
   */
  labelClose: string;
  /**
   * Used to display a count out of a total.
   */
  labelCountWithTotal: string;
  /**
   * Label for data visualizations used for accessibility.
   */
  labelDataVisualization: string;
  /**
   * Used for the date value in the tooltip, if a time axis is being used.
   */
  labelDate: string;
  /**
   * Used when the group names are not specified.
   */
  labelDefaultGroupName: string;
  /**
   * Used for the default tooltip.
   */
  labelGroup: string;
  /**
   * >Used for the high value in the tooltip for stock and range data.
   */
  labelHigh: string;
  /**
   * Text shown when the component receives invalid data.
   */
  labelInvalidData: string;
  /**
   * Used for the low value in the tooltip for stock and range data.
   */
  labelLow: string;
  /**
   * Text shown when the component receives no data.
   */
  labelNoData: string;
  /**
   * Used for the open value in the tooltip for stock data.
   */
  labelOpen: string;
  /**
   * Used for the other series label which aggregates small data values.
   */
  labelOther: string;
  /**
   * Used for displaying the percentage in the tooltip.
   */
  labelPercentage: string;
  /**
   * Used for displaying the first quartile for box plots.
   */
  labelQ1: string;
  /**
   * Used for displaying the second quartile (i.e. median) for box plots.
   */
  labelQ2: string;
  /**
   * Used for displaying the third quartile for box plots.
   */
  labelQ3: string;
  /**
   * Used for the default tooltip.
   */
  labelSeries: string;
  /**
   * Used for the funnel chart target value.
   */
  labelTargetValue: string;
  /**
   * Used for the data item value in the tooltip.
   */
  labelValue: string;
  /**
   * Used for the volume value in the tooltip for stock data.
   */
  labelVolume: string;
  /**
   * Used for the x value in the tooltip.
   */
  labelX: string;
  /**
   * Used for the y value in the tooltip.
   */
  labelY: string;
  /**
   * Used for the z value in the tooltip.
   */
  labelZ: string;
  /**
   * Used to describe the collapsed state for accessibility.
   */
  stateCollapsed: string;
  /**
   * Used to describe a drillable object for accessibility.
   */
  stateDrillable: string;
  /**
   * Used to describe the expanded state for accessibility.
   */
  stateExpanded: string;
  /**
   * Used to describe the hidden state for accessibility.
   */
  stateHidden: string;
  /**
   * Used to describe the isolated state for accessibility.
   */
  stateIsolated: string;
  /**
   * Used to describe the maximized state for accessibility.
   */
  stateMaximized: string;
  /**
   * Used to describe the minimized state for accessibility.
   */
  stateMinimized: string;
  /**
   * Used to describe the selected state for accessibility.
   */
  stateSelected: string;
  /**
   * Used to describe the unselected state for accessibility.
   */
  stateUnselected: string;
  /**
   * Used to describe the visible state for accessibility.
   */
  stateVisible: string;
  /**
   * Used for the pan tooltip.
   */
  tooltipPan: string;
  /**
   * Used for the marquee select tooltip.
   */
  tooltipSelect: string;
  /**
   * Used for the marquee zoom tooltip.
   */
  tooltipZoom: string;
}
export interface ValueFormats {
  /**
   * Specifies the value formatting and tooltip behavior for the close values of a stock chart.
   */
  close: ValueFormatsClose;
  /**
   * Specifies tooltip behavior for the groups.
   */
  group: ValueFormatsGroup;
  /**
   * Specifies the value formatting and tooltip behavior for the high values.
   */
  high: ValueFormatsHigh;
  /**
   * Specifies the value formatting for the data item labels.
   */
  label: ValueFormatsLabel;
  /**
   * Specifies the value formatting and tooltip behavior for the low values.
   */
  low: ValueFormatsLow;
  /**
   * Specifies the value formatting and tooltip behavior for the open values of a stock chart.
   */
  open: ValueFormatsOpen;
  /**
   * Specifies the value formatting and tooltip behavior for the q1 values of a box plot.
   */
  q1: ValueFormatsQ1;
  /**
   * Specifies the value formatting and tooltip behavior for the q2 values of a box plot.
   */
  q2: ValueFormatsQ2;
  /**
   * Specifies the value formatting and tooltip behavior for the q3 values of a box plot.
   */
  q3: ValueFormatsQ3;
  /**
   * Specifies tooltip behavior for the series.
   */
  series: ValueFormatsSeries;
  /**
   * Specifies the value formatting and tooltip behavior for the target values of a funnel chart.
   */
  targetValue: ValueFormatsTargetValue;
  /**
   * Specifies the value formatting and tooltip behavior for the values.
   */
  value: ValueFormatsValue;
  /**
   * Specifies the value formatting and tooltip behavior for the volume values of a stock chart.
   */
  volume: ValueFormatsVolume;
  /**
   * Specifies the value formatting and tooltip behavior for the x values.
   */
  x: ValueFormatsX;
  /**
   * Specifies the value formatting and tooltip behavior for the y values.
   */
  y: ValueFormatsY;
  /**
   * Specifies the value formatting and tooltip behavior for the y2 values.
   */
  y2: ValueFormatsY2;
  /**
   * Specifies the value formatting and tooltip behavior for the z values.
   */
  z: ValueFormatsZ;
}
export interface ValueFormatsClose {
  /**
   * The converter used to format the label. See the Help documentation for more information.
   */
  converter: object;
  /**
   * The scaling behavior of the value. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip.
   */
  tooltipLabel: string;
}
export interface ValueFormatsGroup {
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip. This value can also take an array of strings to be applied to hierarchical group names, from outermost to innermost.
   */
  tooltipLabel: string | Array<string>;
}
export interface ValueFormatsHigh {
  /**
   * The converter used to format the label. See the Help documentation for more information.
   */
  converter: object;
  /**
   * The scaling behavior of the value. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip.
   */
  tooltipLabel: string;
}
export interface ValueFormatsLabel {
  /**
   * The converter used to format the label. See the Help documentation for more information.
   */
  converter: object;
  /**
   * The scaling behavior of the value. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
}
export interface ValueFormatsLow {
  /**
   * The converter used to format the label. See the Help documentation for more information.
   */
  converter: object;
  /**
   * The scaling behavior of the value. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip.
   */
  tooltipLabel: string;
}
export interface ValueFormatsOpen {
  /**
   * The converter used to format the label. See the Help documentation for more information.
   */
  converter: object;
  /**
   * The scaling behavior of the value. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip.
   */
  tooltipLabel: string;
}
export interface ValueFormatsQ1 {
  /**
   * The converter used to format the label. See the Help documentation for more information.
   */
  converter: object;
  /**
   * The scaling behavior of the value. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip.
   */
  tooltipLabel: string;
}
export interface ValueFormatsQ2 {
  /**
   * The converter used to format the label. See the Help documentation for more information.
   */
  converter: object;
  /**
   * The scaling behavior of the value. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip.
   */
  tooltipLabel: string;
}
export interface ValueFormatsQ3 {
  /**
   * The converter used to format the label. See the Help documentation for more information.
   */
  converter: object;
  /**
   * The scaling behavior of the value. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip.
   */
  tooltipLabel: string;
}
export interface ValueFormatsSeries {
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip.
   */
  tooltipLabel: string;
}
export interface ValueFormatsTargetValue {
  /**
   * The converter used to format the label. See the Help documentation for more information.
   */
  converter: object;
  /**
   * The scaling behavior of the value. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip.
   */
  tooltipLabel: string;
}
export interface ValueFormatsValue {
  /**
   * The converter used to format the label. See the Help documentation for more information.
   */
  converter: object;
  /**
   * The scaling behavior of the value. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip.
   */
  tooltipLabel: string;
}
export interface ValueFormatsVolume {
  /**
   * The converter used to format the label. See the Help documentation for more information.
   */
  converter: object;
  /**
   * The scaling behavior of the value. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip.
   */
  tooltipLabel: string;
}
export interface ValueFormatsX {
  /**
   * The converter used to format the label. See the Help documentation for more information.
   */
  converter: object;
  /**
   * The scaling behavior of the value. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip.
   */
  tooltipLabel: string;
}
export interface ValueFormatsY {
  /**
   * The converter used to format the label. See the Help documentation for more information.
   */
  converter: object;
  /**
   * The scaling behavior of the value. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip.
   */
  tooltipLabel: string;
}
export interface ValueFormatsY2 {
  /**
   * The converter used to format the label. See the Help documentation for more information.
   */
  converter: object;
  /**
   * The scaling behavior of the value. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip.
   */
  tooltipLabel: string;
}
export interface ValueFormatsZ {
  /**
   * The converter used to format the label. See the Help documentation for more information.
   */
  converter: object;
  /**
   * The scaling behavior of the value. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * Whether the value is displayed in the tooltip.
   */
  tooltipDisplay: string;
  /**
   * A string representing the label that is displayed before the value in the tooltip.
   */
  tooltipLabel: string;
}
export interface XAxis {
  /**
   * An object defining properties for the axis line.
   */
  axisLine: XAxisAxisLine;
  /**
   * Defines whether the axis baseline starts at the minimum value of the data or at zero. Only applies to numerical data axes.
   */
  baselineScaling: string;
  /**
   * The maximum data value corresponding to an axis. If specified, the automatic axis extent calculation will use this value. Only applies to numerical axes.
   */
  dataMax: number;
  /**
   * The minimum data value corresponding to an axis. If specified, the automatic axis extent calculation will use this value. Only applies to numerical axes.
   */
  dataMin: number;
  /**
   * An object defining properties for the major tick marks.
   */
  majorTick: XAxisMajorTick;
  /**
   * The maximum value of the axis. Defaults to null for automatic calculation based on the data. See the Help documentation for more information.
   */
  max: number | string;
  /**
   * Defines the maximum size of the axis in pixels (e.g. '50px') or percent (e.g. '15%').
   */
  maxSize: string;
  /**
   * The minimum value of the axis. Defaults to null for automatic calculation based on the data. See the Help documentation for more information.
   */
  min: number | string;
  /**
   * The minimum increment between major tick marks. This is typically used to prevent fractional axis values for discrete measures. Only applies to numerical axes.
   */
  minStep: number;
  /**
   * The increment between minor tick marks. Defaults to null for automatic calculation based on the data. Only applies to numerical axes. See the Help documentation for more information.
   */
  minorStep: number;
  /**
   * An object defining properties for the minor tick marks.
   */
  minorTick: XAxisMinorTick;
  /**
   * The array of reference objects associated with the axis.
   */
  referenceObjects: Array<XAxisReferenceObjects>;
  /**
   * Defines whether the axis is rendered.
   */
  rendered: string;
  /**
   * Defines the axis scale. Only applies to numerical axes.
   */
  scale: string;
  /**
   * Defines the size of the axis in pixels (e.g. '50px') or percent (e.g. '15%').
   */
  size: string;
  /**
   * The increment between major tick marks. Defaults to null for automatic calculation based on the data. Only applies to time and numerical axes. See the Help documentation for more information.
   */
  step: number;
  /**
   * An object defining the properties of the tick labels.
   */
  tickLabel: XAxisTickLabel;
  /**
   * The axis title. Does not apply to polar charts.
   */
  title: string;
  /**
   * The CSS style object defining the style of the axis title.
   */
  titleStyle: object;
  /**
   * Specifies the end group of the current viewport. Only applies to charts with group or time axis. If not specified, the default end group is the last group in the data set. The application should set either the viewportMax or viewportEndGroup and not both at the same time. If both viewportEndGroup and viewportMax are specified, viewportMax takes precedence.
   */
  viewportEndGroup: number | string;
  /**
   * Specifies the maximum x coordinate of the current viewport for zoom and scroll. See the Help documentation for more information.
   */
  viewportMax: number | string;
  /**
   * Specifies the minimum x coordinate of the current viewport for zoom and scroll. See the Help documentation for more information.
   */
  viewportMin: number | string;
  /**
   * Specifies the start group of the current viewport. Only applies to charts with group or time axis. If not specified, the default start group is the first group in the data set. The application should set either the viewportMin or viewportStartGroup and not both at the same time. If both viewportStartGroup and viewportMin are specified, viewportMin takes precedence.
   */
  viewportStartGroup: number | string;
}
export interface XAxisAxisLine {
  /**
   * The color of the line.
   */
  lineColor: string;
  /**
   * The width of the line.
   */
  lineWidth: number;
  /**
   * Defines whether the line is rendered.
   */
  rendered: string;
}
export interface XAxisMajorTick {
  /**
   * The color of the major tick mark at the baseline. Valid values are auto, inherit, or a custom color. If set to inherit, it will follow the lineColor attribute.
   */
  baselineColor: string;
  /**
   * The line style of the major tick mark at the baseline. If not specified, it will follow the lineStyle attribute.
   */
  baselineStyle: string;
  /**
   * The width of the major tick mark at the baseline. If not specified, it will follow the lineWidth attribute.
   */
  baselineWidth: number;
  /**
   * The color of the line.
   */
  lineColor: string;
  /**
   * The line style of the tick marks.
   */
  lineStyle: string;
  /**
   * The width of the line.
   */
  lineWidth: number;
  /**
   * Defines whether the line is rendered.
   */
  rendered: string;
}
export interface XAxisMinorTick {
  /**
   * The color of the line.
   */
  lineColor: string;
  /**
   * The line style of the tick marks.
   */
  lineStyle: string;
  /**
   * The width of the line.
   */
  lineWidth: number;
  /**
   * Defines whether the line is rendered.
   */
  rendered: string;
}
export interface XAxisReferenceObjects {
  /**
   * An optional array of category strings corresponding to this reference object. This allows highlighting and filtering of a reference object through interactions with legend sections. If not defined, the reference object id is used.
   */
  categories: Array<string>;
  /**
   * The color of the reference object.
   */
  color: string;
  /**
   * Defines whether the reference object should be shown in the legend.
   */
  displayInLegend: string;
  /**
   * The high value of an area reference object. See the Help documentation for more information.
   */
  high: number | string;
  /**
   * The id of the reference object.
   */
  id: string;
  /**
   * The line style of the line reference object. Does not apply to area reference objects.
   */
  lineStyle: string;
  /**
   * The width of the line reference object. Does not apply to area reference objects.
   */
  lineWidth: number;
  /**
   * The location of the reference object relative to the data items.
   */
  location: string;
  /**
   * The low value of an area reference object. See the Help documentation for more information.
   */
  low: number | string;
  /**
   * The description of this object. This is used for accessibility and also for customizing the tooltip text.
   */
  shortDesc: string;
  /**
   * The CSS style class to apply to the reference object. See the Help documentation for more Information.
   */
  svgClassName: string;
  /**
   * The CSS inline style to apply to the reference object. See the Help documentation for more Information.
   */
  svgStyle: object;
  /**
   * The text displayed in the legend for the reference object.
   */
  text: string;
  /**
   * The type of reference object being shown. See the Help documentation for more information.
   */
  type: string;
  /**
   * The value of a line reference object. This property defines a constant value across the entire reference object. See the Help documentation for more information.
   */
  value: number | string;
}
export interface XAxisTickLabel {
  /**
   * The converter used to format the labels. See the Help documentation for more information.
   */
  converter: object;
  /**
   * Defines whether the tick labels are rendered.
   */
  rendered: string;
  /**
   * Defines whether the chart will automatically rotate the labels by 90 degrees in order to fit more labels on the axis. The rotation will only be applied to categorical labels for a horizontal axis.
   */
  rotation: string;
  /**
   * The scaling behavior of the labels. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * The CSS style object defining the style of the labels.
   */
  style: object;
}
export interface Y2Axis {
  /**
   * Defines whether the tick marks of the y1 and y2 axes are aligned. Not supported for logarithmic axes.
   */
  alignTickMarks: string;
  /**
   * An object defining properties for the axis line.
   */
  axisLine: Y2AxisAxisLine;
  /**
   * Defines whether the axis baseline starts at the minimum value of the data or at zero. Only applies to numerical data axes.
   */
  baselineScaling: string;
  /**
   * The maximum data value corresponding to an axis. If specified, the automatic axis extent calculation will use this value. Only applies to numerical axes.
   */
  dataMax: number;
  /**
   * The minimum data value corresponding to an axis. If specified, the automatic axis extent calculation will use this value. Only applies to numerical axes.
   */
  dataMin: number;
  /**
   * An object defining properties for the major tick marks.
   */
  majorTick: Y2AxisMajorTick;
  /**
   * The maximum value of the axis. Defaults to null for automatic calculation based on the data.
   */
  max: number;
  /**
   * Defines the maximum size of the axis in pixels (e.g. '50px') or percent (e.g. '15%').
   */
  maxSize: string;
  /**
   * The minimum value of the axis. Defaults to null for automatic calculation based on the data.
   */
  min: number;
  /**
   * The minimum increment between major tick marks. This is typically used to prevent fractional axis values for discrete measures. Only applies to numerical axes.
   */
  minStep: number;
  /**
   * The increment between minor tick marks. Defaults to null for automatic calculation based on the data. Only applies to numerical axes. See the Help documentation for more information.
   */
  minorStep: number;
  /**
   * An object defining properties for the minor tick marks.
   */
  minorTick: Y2AxisMinorTick;
  /**
   * The position of the axis relative to its content. For vertical charts, only start and end apply. For horizontal charts, only top and bottom apply.
   */
  position: string;
  /**
   * The array of reference objects associated with the axis.
   */
  referenceObjects: Array<Y2AxisReferenceObjects>;
  /**
   * Defines whether the axis is rendered.
   */
  rendered: string;
  /**
   * Defines the axis scale. Only applies to numerical axes.
   */
  scale: string;
  /**
   * Defines the size of the axis in pixels (e.g. '50px') or percent (e.g. '15%').
   */
  size: string;
  /**
   * The increment between major tick marks. Defaults to null for automatic calculation based on the data. Only applies to time and numerical axes. See the Help documentation for more information.
   */
  step: number;
  /**
   * An object defining the properties of the tick labels.
   */
  tickLabel: Y2AxisTickLabel;
  /**
   * The axis title. Does not apply to polar charts.
   */
  title: string;
  /**
   * The CSS style object defining the style of the axis title.
   */
  titleStyle: object;
}
export interface Y2AxisAxisLine {
  /**
   * The color of the line.
   */
  lineColor: string;
  /**
   * The width of the line.
   */
  lineWidth: number;
  /**
   * Defines whether the line is rendered.
   */
  rendered: string;
}
export interface Y2AxisMajorTick {
  /**
   * The color of the major tick mark at the baseline. Valid values are auto, inherit, or a custom color. If set to inherit, it will follow the lineColor attribute.
   */
  baselineColor: string;
  /**
   * The line style of the major tick mark at the baseline. If not specified, it will follow the lineStyle attribute.
   */
  baselineStyle: string;
  /**
   * The width of the major tick mark at the baseline. If not specified, it will follow the lineWidth attribute.
   */
  baselineWidth: number;
  /**
   * The color of the line.
   */
  lineColor: string;
  /**
   * The line style of the tick marks.
   */
  lineStyle: string;
  /**
   * The width of the line.
   */
  lineWidth: number;
  /**
   * Defines whether the line is rendered.
   */
  rendered: string;
}
export interface Y2AxisMinorTick {
  /**
   * The color of the line.
   */
  lineColor: string;
  /**
   * The line style of the tick marks.
   */
  lineStyle: string;
  /**
   * The width of the line.
   */
  lineWidth: number;
  /**
   * Defines whether the line is rendered.
   */
  rendered: string;
}
export interface Y2AxisReferenceObjects {
  /**
   * An optional array of category strings corresponding to this reference object. This allows highlighting and filtering of a reference object through interactions with legend sections. If not defined, the reference object id is used.
   */
  categories: Array<string>;
  /**
   * The color of the reference object.
   */
  color: string;
  /**
   * Defines whether the reference object should be shown in the legend.
   */
  displayInLegend: string;
  /**
   * The high value of an area reference object. This property defines a constant value across the entire reference area. See the Help documentation for more information.
   */
  high: number;
  /**
   * The id of the reference object.
   */
  id: string;
  /**
   * An array of values or an array of objects that define the data for a varying reference object. See the Help documentation for more information.
   */
  items: Array<object>;
  /**
   * The line style of the line reference object. Does not apply to area reference objects.
   */
  lineStyle: string;
  /**
   * The line type of the varying reference object. See the Help documentation for more information.
   */
  lineType: string;
  /**
   * The width of the line reference object. Does not apply to area reference objects.
   */
  lineWidth: number;
  /**
   * The location of the reference object relative to the data items.
   */
  location: string;
  /**
   * The low value of an area reference object. This property defines a constant value across the entire reference area. See the Help documentation for more information.
   */
  low: number;
  /**
   * The description of this object. This is used for accessibility and also for customizing the tooltip text.
   */
  shortDesc: string;
  /**
   * The CSS style class to apply to the reference object. See the Help documentation for more Information.
   */
  svgClassName: string;
  /**
   * The CSS inline style to apply to the reference object. See the Help documentation for more Information.
   */
  svgStyle: object;
  /**
   * The text displayed in the legend for the reference object.
   */
  text: string;
  /**
   * The type of reference object being shown. See the Help documentation for more information.
   */
  type: string;
  /**
   * The value of a line reference object. This property defines a constant value across the entire reference object. See the Help documentation for more information.
   */
  value: number;
}
export interface Y2AxisTickLabel {
  /**
   * The converter used to format the labels. See the Help documentation for more information.
   */
  converter: object;
  /**
   * Defines the position of the tick labels relative to the plot area. Inside position is not supported for scatter and bubble charts.
   */
  position: string;
  /**
   * Defines whether the tick labels are rendered.
   */
  rendered: string;
  /**
   * The scaling behavior of the labels. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * The CSS style object defining the style of the labels.
   */
  style: object;
}
export interface YAxis {
  /**
   * An object defining properties for the axis line.
   */
  axisLine: YAxisAxisLine;
  /**
   * Defines whether the axis baseline starts at the minimum value of the data or at zero. Only applies to numerical data axes.
   */
  baselineScaling: string;
  /**
   * The maximum data value corresponding to an axis. If specified, the automatic axis extent calculation will use this value. Only applies to numerical axes.
   */
  dataMax: number;
  /**
   * The minimum data value corresponding to an axis. If specified, the automatic axis extent calculation will use this value. Only applies to numerical axes.
   */
  dataMin: number;
  /**
   * An object defining properties for the major tick marks.
   */
  majorTick: YAxisMajorTick;
  /**
   * The maximum value of the axis. Defaults to null for automatic calculation based on the data.
   */
  max: number;
  /**
   * Defines the maximum size of the axis in pixels (e.g. '50px') or percent (e.g. '15%').
   */
  maxSize: string;
  /**
   * The minimum value of the axis. Defaults to null for automatic calculation based on the data.
   */
  min: number;
  /**
   * The minimum increment between major tick marks. This is typically used to prevent fractional axis values for discrete measures. Only applies to numerical axes.
   */
  minStep: number;
  /**
   * The increment between minor tick marks. Defaults to null for automatic calculation based on the data. Only applies to numerical axes. See the Help documentation for more information.
   */
  minorStep: number;
  /**
   * An object defining properties for the minor tick marks.
   */
  minorTick: YAxisMinorTick;
  /**
   * The position of the axis relative to its content. For vertical charts, only start and end apply. For horizontal charts, only top and bottom apply.
   */
  position: string;
  /**
   * The array of reference objects associated with the axis.
   */
  referenceObjects: Array<YAxisReferenceObjects>;
  /**
   * Defines whether the axis is rendered.
   */
  rendered: string;
  /**
   * Defines the axis scale. Only applies to numerical axes.
   */
  scale: string;
  /**
   * Defines the size of the axis in pixels (e.g. '50px') or percent (e.g. '15%').
   */
  size: string;
  /**
   * The increment between major tick marks. Defaults to null for automatic calculation based on the data. Only applies to time and numerical axes. See the Help documentation for more information.
   */
  step: number;
  /**
   * An object defining the properties of the tick labels.
   */
  tickLabel: YAxisTickLabel;
  /**
   * The axis title. Does not apply to polar charts.
   */
  title: string;
  /**
   * The CSS style object defining the style of the axis title.
   */
  titleStyle: object;
  /**
   * Specifies the maximum y coordinate of the current viewport for zoom and scroll. Only applies to bubble and scatter charts. If not specified, this value will be the axis max.
   */
  viewportMax: number;
  /**
   * Specifies the minimum y coordinate of the current viewport for zoom and scroll. Only applies to bubble and scatter charts. If not specified, this value will be the axis min.
   */
  viewportMin: number;
}
export interface YAxisAxisLine {
  /**
   * The color of the line.
   */
  lineColor: string;
  /**
   * The width of the line.
   */
  lineWidth: number;
  /**
   * Defines whether the line is rendered.
   */
  rendered: string;
}
export interface YAxisMajorTick {
  /**
   * The color of the major tick mark at the baseline. Valid values are auto, inherit, or a custom color. If set to inherit, it will follow the lineColor attribute.
   */
  baselineColor: string;
  /**
   * The line style of the major tick mark at the baseline. If not specified, it will follow the lineStyle attribute.
   */
  baselineStyle: string;
  /**
   * The width of the major tick mark at the baseline. If not specified, it will follow the lineWidth attribute.
   */
  baselineWidth: number;
  /**
   * The color of the line.
   */
  lineColor: string;
  /**
   * The line style of the tick marks.
   */
  lineStyle: string;
  /**
   * The width of the line.
   */
  lineWidth: number;
  /**
   * Defines whether the line is rendered.
   */
  rendered: string;
}
export interface YAxisMinorTick {
  /**
   * The color of the line.
   */
  lineColor: string;
  /**
   * The line style of the tick marks.
   */
  lineStyle: string;
  /**
   * The width of the line.
   */
  lineWidth: number;
  /**
   * Defines whether the line is rendered.
   */
  rendered: string;
}
export interface YAxisReferenceObjects {
  /**
   * An optional array of category strings corresponding to this reference object. This allows highlighting and filtering of a reference object through interactions with legend sections. If not defined, the reference object id is used.
   */
  categories: Array<string>;
  /**
   * The color of the reference object.
   */
  color: string;
  /**
   * Defines whether the reference object should be shown in the legend.
   */
  displayInLegend: string;
  /**
   * The high value of an area reference object. This property defines a constant value across the entire reference area. See the Help documentation for more information.
   */
  high: number;
  /**
   * The id of the reference object.
   */
  id: string;
  /**
   * An array of values or an array of objects that define the data for a varying reference object. See the Help documentation for more information.
   */
  items: Array<object>;
  /**
   * The line style of the line reference object. Does not apply to area reference objects.
   */
  lineStyle: string;
  /**
   * The line type of the varying reference object. See the Help documentation for more information.
   */
  lineType: string;
  /**
   * The width of the line reference object. Does not apply to area reference objects.
   */
  lineWidth: number;
  /**
   * The location of the reference object relative to the data items.
   */
  location: string;
  /**
   * The low value of an area reference object. This property defines a constant value across the entire reference area. See the Help documentation for more information.
   */
  low: number;
  /**
   * The description of this object. This is used for accessibility and also for customizing the tooltip text.
   */
  shortDesc: string;
  /**
   * The CSS style class to apply to the reference object. See the Help documentation for more Information.
   */
  svgClassName: string;
  /**
   * The CSS inline style to apply to the reference object. See the Help documentation for more Information.
   */
  svgStyle: object;
  /**
   * The text displayed in the legend for the reference object.
   */
  text: string;
  /**
   * The type of reference object being shown. See the Help documentation for more information.
   */
  type: string;
  /**
   * The value of a line reference object. This property defines a constant value across the entire reference object. See the Help documentation for more information.
   */
  value: number;
}
export interface YAxisTickLabel {
  /**
   * The converter used to format the labels. See the Help documentation for more information.
   */
  converter: object;
  /**
   * Defines the position of the tick labels relative to the plot area. Inside position is not supported for scatter and bubble charts.
   */
  position: string;
  /**
   * Defines whether the tick labels are rendered.
   */
  rendered: string;
  /**
   * The scaling behavior of the labels. When using a converter, scaling should be set to none, as the formatted result may not be compatible with the scaling suffixes.
   */
  scaling: string;
  /**
   * The CSS style object defining the style of the labels.
   */
  style: object;
}
